首页 > 其他 > 详细

标准容器的赋值和拷贝是安全的

时间:2019-12-17 20:37:21      阅读:65      评论:0      收藏:0      [点我收藏+]

标准容器,特别是vector,经常会被"传值".

vector<string> v1 = v2;

这个行为其实是蛮恐怖的,调用了vector的拷贝构函数.

STL容器的拷贝构造函数应该都是"深复制".

以vector,它内部的cellnum是已知的,只需要先克隆一个够用的vector,然后逐个的对每个元素做拷贝构造到新的vector上去就行了.

乃至vector<vector<string>>之间的拷贝都是完整的,拷贝完两者就不再依赖.

要求具体的element(数组元素)也支持"深"的拷贝构造.

另外还有一种写法是:

vector<string> v1(v2);

这样本质一些.

标准容器的赋值和拷贝是安全的

原文:https://www.cnblogs.com/xiang-yin/p/12056542.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!