C で配列の要素をデフォルト値に初期化する
この質問は、次の構文を使用した C での配列の初期化から生じます。 >
int array[100] = {-1};この初期化では、最初の要素が -1 に設定され、残りの要素はそのままになります。 0、これは望ましい動作ではありません。これに対処するには、次の点を考慮する必要があります。
構文の解釈
構文 int array[100] = {-1};本質的には、「最初の要素を -1 に設定し、残りを 0 に設定する」ということです。配列宣言で要素が省略されると、デフォルトで自動的に 0 に初期化されます。すべての要素をゼロ以外の値に設定する
すべての要素をゼロ以外の値に初期化するには-1 のようなゼロ以外の値の場合、デフォルトの省略値の初期化のみに依存することはできません。代わりに、次のアプローチを使用できます。std::fill_n(array, 100, -1);
for (int i = 0; i < 100; i++) { array[i] = -1; }
速度比較
ループと比較したデフォルトの初期化の速度に大きな違いはありません。どちらのアプローチでも要素は順番に初期化されるため、時間計算量は変わりません。ただし、 std::fill_n を使用すると、手動ループと比較していくつかの命令を節約でき、ほとんどの場合、処理が若干速くなります。以上がC 配列のすべての要素をゼロ以外の特定の値に初期化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。