C++ で配列のすべての要素を 1 つのデフォルト値に初期化する方法は? 質問する

C++ で配列のすべての要素を 1 つのデフォルト値に初期化する方法は? 質問する

C++ ノート: 配列の初期化配列の初期化に関する素晴らしいリストがあります。

int array[100] = {-1};

-1 でいっぱいになると予想していましたが、そうではなく、最初の値のみで、残りはランダムな値が混ざった 0 です。

コード

int array[100] = {0};

正常に動作し、各要素を 0 に設定します。

ここで何が足りないのでしょうか。値がゼロでない場合は初期化できないのでしょうか?

2: デフォルトの初期化 (上記) は、配列全体をループして値を割り当てる通常の方法よりも高速ですか、それとも同じことを行いますか?

ベストアンサー1

使用した構文を使用すると、

int array[100] = {-1};

省略された要素はすべて に設定されるため、最初の要素を に設定し-1、残りを に設定することを意味します。00

C++では、すべてを に設定するには-1、次のようにします。std::fill_n(から<algorithm>):

std::fill_n(array, 100, -1);

ポータブル C では、独自のループを記述する必要があります。コンパイラ拡張機能があり、許容できる場合は実装定義の動作をショートカットとして使用できます。

おすすめ記事