日記

内容の正しさは保証しません

ノート 6/16

最近勉強できてなくてstd::vectorで詰まったので覚えたことを書く。

std::vectorを使うための条件
1 Tのコピーコンストラクタが定義されていて外部から呼び出し可能である
2 Tに代入演算子が定義され利用可能
3 Tのデストラクタが外部から呼び出し可能

コピーコンストラクタ:初期化に使われる
T(T const&) (またはT(T&&))

std::vector v(n);
とするとn回デフォルトコンストラクタが呼び出される。vの寿命が尽きた後、n回デストラクタが呼ばれる。

std::vector v(n, t) (tはT型オブジェクト)
コピーコンストラクタがn回呼ばれる。tの寿命が終わればデストラクタが呼び出される。またvの寿命も尽きればn回デストラクタが呼ばれる。