を呼び出してください:C++はなぜベクトルの初期化は、コピーコンストラクタ
std::vector<MyClass> MyVec(10);
それは、一度デフォルトのコンストラクタを呼び出して、コピーコンストラクタに追加の10回を呼び出します。 それを正しく理解すれば、ベクトルのオブジェクトはすべてコピーコンストラクタによって作成されます。
誰かが、コピーコンストラクタを呼び出す理由を説明することはできますが、デフォルトのものは説明できませんか? オブジェクトを持たないメモリを割り当てるだけですか?
オブジェクトを構築せずにメモリを割り当てる:実際には使用できません。代入演算子でさえ、コンストラクタが確立するものを必要とするかもしれません。もちろん予約だけでも意味をなさないかもしれませんが、セマンティクスは非常に異なるでしょう。 – delnan
[My test](http://liveworkspace.org/code/b831cffa5df38a6b12c8a637de815573)には、10回呼び出されるデフォルトのコンストラクタが表示されます。 – chris
この動作は、各メンバーの値の初期化が可能なC++ 11で変更されました。 –