我有一些 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/