复制和分配矢量有什么区别? 第2和第4行。
1 vector<int> V1(5);
2 vector<int> V3(V1);
3 vector<int> V4(V1.size());
4 V4 = V1 ;
答案 0 :(得分:0)
以下是来自operator=
的stl实现的doxygen摘录:
/* All the elements of @a x are copied, but any extra memory in
* @a x (for fast expansion) will not be copied. Unlike the
* copy constructor, the allocator object is not copied.
*/
正如您所看到的,如果您使用自定义分配器会有所不同,但在其他情况下结果是相同的。
答案 1 :(得分:0)
第2行使用复制构造函数。第4行使用副本分配。两者都创造副本;第一个创建一个新对象,第二个覆盖现有对象。