矢量<Point> myArr的深层副本

nac*_*o4d 4 c++ vector member deep-copy libstdc++

为了制作一份深刻的副本myArr,

vector <Point> myArr;
Run Code Online (Sandbox Code Playgroud)

哪个Point是一个有2个整数的成员,

我需要做一些特别的事吗?或者还可以

vector <Point> otherArr = myArr;
Run Code Online (Sandbox Code Playgroud)

我需要删除一些点,otherArr但同时我需要所有的点以myArr供以后使用.

提前致谢

Aru*_*run 7

请参阅浅层与深层副本有效C++

Point不需要深层复制.作为一个拇指规则,当一个类有指针成员时,需要"深层复制".这个Point班只有两个int成员,因此"深拷贝"不需要任何特别的努力,正常或"浅拷贝"会完全没问题.实际上,不需要编写复制构造函数Point,编译器提供的默认或复合构造函数就可以了.

关于你的第二个问题,在线之后

vector< Point > otherArr = myArr;
Run Code Online (Sandbox Code Playgroud)

被执行,otherArr并且myArr是两个独立的载体.在其中一个上执行的操作(例如删除一些元素)不会以任何方式影响另一个元素.