c++ - 如何拥有按值 vector 并结合使用指针 vector ?

标签 c++ memory pointers vector stack

我有一些 A 类对象的 vector :

 std::vector<A> *V1;
 std::vector<A> *V2;

等等

有一个函数,其指针 vector 为 A:

 std::vector<A *> *arranged;

我需要做的是将来自 V1、V2 等的 vector 放在里面,但最终不会破坏它们,所以我认为指向这些对象的指针 vector ...这可能吗? 如果是,您能否给我一个带有变量 V1 的迭代示例,并将这些对象的指针添加到 arranged 中?

假设您暂时需要将对象的 3 个 vector 分类为一个 vector ,但您不想弄乱这 3 个 vector 的内存。

你好,

最佳答案

您可以编写自己的比较器。在这种情况下,比较器将在 A* 上工作。使用 int 类型的简单示例:

void fun(vector<int*>* vec)
{
  /////////
}

bool comp(int* lhs, int* rhs)
{
    return *lhs < *rhs;
}

int main()
{
    vector<int> first, second;
    vector<int*> vec;

    for(vector<int>::size_type i = 0; i < first.size(); ++i)
        vec.push_back(&first[i]);
    for(vector<int>::size_type i = 0; i < second.size(); ++i)
        vec.push_back(&second[i]);

    // write your own comparator! provided above: comp
    sort(vec.begin(), vec.end(), comp);

    fun(&vec);

    return 0;
}

关于c++ - 如何拥有按值 vector 并结合使用指针 vector ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1609121/

相关文章:

c++ - C++ 中 IsA() 的意义何在?

c++ - rand_r 不在范围内,gcc mingw 在 Windows 上的 cygwin 下

c++ - 如何检测 C++ 中未分配内存的双重删除或删除?

c - 函数中声明的 const 变量的堆栈中是否有只读内存?

java - Eclipse ADT 内存不足并不断崩溃?

c++ - 将变量作为指针、引用、常量引用等传递 : What Happens at the Hardware Level?

c++ - 好奇除法结果

c++ - 链表中的唯一指针

java - 有没有办法检查两个对象在 Java 中是否有别名?

c++ - 如何在没有 libiconv 符号名称的情况下在 OSX 上构建 iconv 的静态库?