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

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

vector<string> v1 = v2;

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

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

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

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

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

另外还有一种写法是:

vector<string> v1(v2);

这样本质一些.

posted @   相印  阅读(1067)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示