!你好
我很难尝试复制指向Point的指针 vector 。
我有一个
vector<Point*> oldVector
我想将此 vector 复制到其他 vector 。因此,我使用了复制构造函数。我是那样做的
vector<Point*> newVector = vector<Point*>(oldVector.begin(),oldVector.end());
不幸的是,如果我运行此功能,则会出现异常/错误。
可能是什么问题?
编辑
迭代器肯定存在更大的问题,看来我根本无法使用迭代器。我想互相添加两个STL vector ,所以我用这样写
vector<int> a, b;
b.insert(b.end(), a.begin(), a.end());
我在执行此行时收到sama异常/错误
最佳答案
那可能是
vector<Point*> *newVector = new vector<Point*>(oldVector.begin(),oldVector.end());
或者
vector<Point*> newVector(oldVector.begin(),oldVector.end());
创建对象时,仅在从堆进行分配时才使用赋值。否则,您只需将构造函数参数放在新变量名后的括号内即可。
另外,下面的方法要简单得多:
vector<Point*> newVector(oldVector);
关于c++ - STL克隆载体,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5109737/