ホームページ >バックエンド開発 >C++ >C 配列のすべての要素をゼロ以外の特定の値に初期化するにはどうすればよいですか?

C 配列のすべての要素をゼロ以外の特定の値に初期化するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-28 22:03:11220ブラウズ

How to Initialize All Elements of a C   Array to a Specific Non-Zero Value?

C で配列の要素をデフォルト値に初期化する

この質問は、次の構文を使用した C での配列の初期化から生じます。 >

int array[100] = {-1};
この初期化では、最初の要素が -1 に設定され、残りの要素はそのままになります。 0、これは望ましい動作ではありません。これに対処するには、次の点を考慮する必要があります。

構文の解釈

構文 int array[100] = {-1};本質的には、「最初の要素を -1 に設定し、残りを 0 に設定する」ということです。配列宣言で要素が省略されると、デフォルトで自動的に 0 に初期化されます。

すべての要素をゼロ以外の値に設定する

すべての要素をゼロ以外の値に初期化するには-1 のようなゼロ以外の値の場合、デフォルトの省略値の初期化のみに依存することはできません。代わりに、次のアプローチを使用できます。

  1. std::fill_n: の std::fill_n 関数を使用します。 library:
std::fill_n(array, 100, -1);
  1. Looping: 標準 C では、各要素に値を割り当てるループを作成する必要があります:
for (int i = 0; i < 100; i++) {
  array[i] = -1;
}

速度比較

ループと比較したデフォルトの初期化の速度に大きな違いはありません。どちらのアプローチでも要素は順番に初期化されるため、時間計算量は変わりません。ただし、 std::fill_n を使用すると、手動ループと比較していくつかの命令を節約でき、ほとんどの場合、処理が若干速くなります。

以上がC 配列のすべての要素をゼロ以外の特定の値に初期化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。