私はテンプレート化された2次元配列std::array< std::array<ScalarType ,3> ,3 > my_array
を持っていて、それらをプログラム中の異なる時間にゼロに設定したいと思います。私はstd::array::fill
を使うことができるようですが、テンプレートを初期化する最速の方法2D std:配列を0にする
my_array.fill(0);
は動作していません。 2d配列を正しく埋めるにはどうしたらいいですか?
私はテンプレート化された2次元配列std::array< std::array<ScalarType ,3> ,3 > my_array
を持っていて、それらをプログラム中の異なる時間にゼロに設定したいと思います。私はstd::array::fill
を使うことができるようですが、テンプレートを初期化する最速の方法2D std:配列を0にする
my_array.fill(0);
は動作していません。 2d配列を正しく埋めるにはどうしたらいいですか?
は私が
my_array.fill({});
引数で{}
を使用することをお勧めmy_array
の内容を埋めるために使用される、std::array<ScalarType, 3>
ゼロ初期化が作成されます。
ありがとう、あなたは私の問題を解決した答え!この構文の詳細はどこで読むことができますか? – SunnyIsaLearner
@SunnyIsaLearner、ウェブ上でのルックアップ値の初期化。 http://en.cppreference.com/w/cpp/language/value_initializationで開始できます。 –
変更この:これに
my_array.fill(0);
:あなたの配列の内容を初期化し、デフォルト
my_array.fill({});
。
私はすべての0を保持する 'const'配列オブジェクトを作成し、それを0にする必要があるときはいつでもあなたの配列にコピーする傾向があります。おそらくその配列オブジェクトを 'zero'という名前にします。 –
「うまくいきません」と言うと、実行時にコンパイラのエラーメッセージや何が間違っているのかの説明を投稿することでそのことを実証する必要があります。単に「働かない」と言うのは無用です。*何かを意味するかもしれません。 –