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供以后使用.
提前致谢
Point不需要深层复制.作为一个拇指规则,当一个类有指针成员时,需要"深层复制".这个Point班只有两个int成员,因此"深拷贝"不需要任何特别的努力,正常或"浅拷贝"会完全没问题.实际上,不需要编写复制构造函数Point,编译器提供的默认或复合构造函数就可以了.
关于你的第二个问题,在线之后
vector< Point > otherArr = myArr;
Run Code Online (Sandbox Code Playgroud)
被执行,otherArr并且myArr是两个独立的载体.在其中一个上执行的操作(例如删除一些元素)不会以任何方式影响另一个元素.