std::array
いくつかの Foo 要素を作成する簡単な例があります。
struct Foo
{
Foo(int bar=0) : m_bar(bar)
{
// Code depending on the value of bar
}
int m_bar;
};
const unsigned int num = // get array size
std::array<Foo, num> fooArr;
コンストラクターで初期化リストを使用すると、m_bar(bar)
すべてがFoo.m_bar
に0
設定されます (これはデフォルトのコンストラクターパラメーター値であるため)。そうしないと、ガベージ値でいっぱいになります。
私の質問は、配列サイズを事前に知らなくても、デフォルト値とは異なる別の値を配列内のすべての要素のコンストラクターに渡すにはどうすればよいですか?
次のように、配列を作成するときに初期化リストを使用しようとしましたが、それは最初の要素を にstd::array<Foo, 5> fooArr{3}
設定するだけです。m_bar
3