复制和分配矢量有什么区别?

时间:2013-03-08 09:26:39

标签: c++ vector initialization assign

复制和分配矢量有什么区别? 第2和第4行。

1    vector<int> V1(5);
2    vector<int> V3(V1);
3    vector<int> V4(V1.size());   
4    V4 = V1 ;

2 个答案:

答案 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行使用副本分配。两者都创造副本;第一个创建一个新对象,第二个覆盖现有对象。