C++ ノート: 配列の初期化配列の初期化に関する素晴らしいリストがあります。
int array[100] = {-1};
-1 でいっぱいになると予想していましたが、そうではなく、最初の値のみで、残りはランダムな値が混ざった 0 です。
コード
int array[100] = {0};
正常に動作し、各要素を 0 に設定します。
ここで何が足りないのでしょうか。値がゼロでない場合は初期化できないのでしょうか?
2: デフォルトの初期化 (上記) は、配列全体をループして値を割り当てる通常の方法よりも高速ですか、それとも同じことを行いますか?
ベストアンサー1
使用した構文を使用すると、
int array[100] = {-1};
省略された要素はすべて に設定されるため、最初の要素を に設定し-1
、残りを に設定することを意味します。0
0
C++では、すべてを に設定するには-1
、次のようにします。std::fill_n
(から<algorithm>
):
std::fill_n(array, 100, -1);
ポータブル C では、独自のループを記述する必要があります。コンパイラ拡張機能があり、許容できる場合は実装定義の動作をショートカットとして使用できます。