!你好
我很难尝试复制指向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/

10-11 20:38