コピーとベクトルの割り当ての違いは何ですか?2行目と4行目。
1 vector<int> V1(5);
2 vector<int> V3(V1);
3 vector<int> V4(V1.size());
4 V4 = V1 ;
コピーとベクトルの割り当ての違いは何ですか?2行目と4行目。
1 vector<int> V1(5);
2 vector<int> V3(V1);
3 vector<int> V4(V1.size());
4 V4 = V1 ;
これが私のstl実装からのdoxygen抽出物ですoperator=
:
/* 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.
*/
ご覧のとおり、カスタムアロケータを使用する場合は違いがありますが、それ以外の場合は結果は同じです。
2行目はコピーコンストラクターを使用しています。4行目はコピー代入を使用しています。どちらもコピーを作成します。1つ目は新しいオブジェクトを作成し、2つ目は既存のオブジェクトを上書きします。