2017-05-11 4 views
2

私はテンプレート化された2次元配列std::array< std::array<ScalarType ,3> ,3 > my_arrayを持っていて、それらをプログラム中の異なる時間にゼロに設定したいと思います。私はstd::array::fillを使うことができるようですが、テンプレートを初期化する最速の方法2D std:配列を0にする

my_array.fill(0); 

は動作していません。 2d配列を正しく埋めるにはどうしたらいいですか?

+0

私はすべての0を保持する 'const'配列オブジェクトを作成し、それを0にする必要があるときはいつでもあなたの配列にコピーする傾向があります。おそらくその配列オブジェクトを 'zero'という名前にします。 –

+1

「うまくいきません」と言うと、実行時にコンパイラのエラーメッセージや何が間違っているのかの説明を投稿することでそのことを実証する必要があります。単に「働かない」と言うのは無用です。*何かを意味するかもしれません。 –

答えて

4

は私が

my_array.fill({}); 

引数で{}を使用することをお勧めmy_arrayの内容を埋めるために使用される、std::array<ScalarType, 3>ゼロ初期化が作成されます。

+0

ありがとう、あなたは私の問題を解決した答え!この構文の詳細はどこで読むことができますか? – SunnyIsaLearner

+1

@SunnyIsaLearner、ウェブ上でのルックアップ値の初期化。 http://en.cppreference.com/w/cpp/language/value_initializationで開始できます。 –

3

変更この:これに

my_array.fill(0); 

:あなたの配列の内容を初期化し、デフォルト

my_array.fill({}); 

関連する問題