質問: ### 前提・実現したいこと C++でstd::vectorをメンバに持つクラスを作成しています. コンストラクタの引数を元に,vectorのfillコンストラクタを使ってその大きさのvectorを作ろうとしているのですが,どのように記述すればいいかわかりません. resize()とfill()を使えばあらかじめ宣言したvectorの大きさを変更して中身を埋めることはできそうですが,fillコンストラクタを使う方法はないのでしょうか? ご教示いただけるとありがたいです. ### こんな感じにしたい,というソースコード ※範囲チェックは省略しています ``` #include class Deck { Deck(int size) { std::vector data(size, false); } bool get(int pos) { return data[pos]; // 識別子'data'が定義されていません } } ``` ### 試したこと 現状はこのように記述しています. ``` #include #include class Deck { std::vector data; Deck(int size) { data.resize(size); std::fill(data.begin(), data.end(), false); } bool get(int pos) { return data[pos]; } } ```
回答: メンバイニシャライザで可能なのではないでしょうか。 ``` Deck(int size) : data(size, false) { } ```