117 私はC ++ 11で、変数をゼロに初期化する機能を追加したことを知っています double number = {}; // number = 0 int data{}; // data = 0 std::vector固定長のをすべてゼロに初期化する同様の方法はありますか? c++ c++11 — pyCthon ソース 13 std::vector<int> vec(42); — avakar 2012年 9 ところで、これはc ++ 11の新機能ではありません。以前のバージョンでもこれを実行できます — balki
219 そのための初期化リストは必要ありません。 std::vector<int> vector1(length, 0); std::vector<double> vector2(length, 0.0); — ロナグ ソース 37 0を明示的に述べる必要はありませんか?ちょうどvector(length)働くべきですか? — Daniel Gratzer、 37 @jozefg:はい、機能しますが、コードに何を実行させたいかを明示することに害はありません。 — ronag 2012年 1 @ronag私が自分で答えを書いたのは、intが彼が使用している型ではない場合、この場合は明示的であることは必ずしも良い例ではないためです。一般的なプログラミングはc ++で利用できますが、引数を完全に省略できることが通知されたので、私の答えを削除しました。 — Johannes Schaub-litb 2012年 1 ronagが示したように、宣言で他の値を指定しない限り、ベクトルは自動的に0に初期化されます。 — ニコス2017 ZEROforループを使用せずに、効率的にグローバルベクトルのすべての要素を再初期化することは可能ですか?????? — Ankit Mishra
0 構造体、クラス、またはユニオンを持つベクトルの初期化は、この方法で実行できます std::vector<SomeStruct> someStructVect(length); memset(someStructVect.data(), 0, sizeof(SomeStruct)*length); — デクスター ソース
std::vector<int> vec(42);