繁体   English   中英

矢量的深拷贝 <Point> myArr,该

[英]Deep copy of vector<Point> myArr

为了制作myArr的深层副本,

vector <Point> myArr;

其中Point是一个有2个int成员的类,

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

vector <Point> otherArr = myArr;

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

提前致谢

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

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

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

vector< Point > otherArr = myArr;

执行, otherArrmyArr是两个独立的向量。 在其中一个上执行的操作(例如删除一些元素)不会以任何方式影响另一个元素。

作业应该没问题。 它确保所有数据都被正确复制。 只需确保Point是可复制的。

你有什么好。 向量具有重载的赋值运算符和执行深层复制的复制构造函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM