工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> C言語

C++ 配列

C++ 配列

このチュートリアルでは、配列の操作を学びます。例を使用して、C++ プログラミングで配列要素を宣言、初期化、およびアクセスする方法を学習します。

C++ では、配列は同じ型の複数の値を格納できる変数です。たとえば、

クラスに 27 人の生徒がいて、全員の成績を保存する必要があるとします。 27 個の個別の変数を作成する代わりに、単純に配列を作成できます:

double grade[27];

ここで、評定 double の要素を最大 27 個保持できる配列です タイプしてください。

C++ では、宣言後に配列のサイズと型を変更することはできません。


C++ 配列宣言

dataType arrayName[arraySize];

たとえば、

int x[6];

ここで、


C++ 配列の要素にアクセス

C++ では、配列の各要素は数値に関連付けられています。この数値は配列インデックスと呼ばれます。これらのインデックスを使用して、配列の要素にアクセスできます。

// syntax to access array elements
array[index];

配列 x を検討してください

<図>

覚えておくべきこと:


C++ 配列の初期化

C++ では、宣言中に配列を初期化することができます。たとえば、

// declare and initialize and array
int x[6] = {19, 10, 8, 17, 9, 15};
<図>

宣言中に配列を初期化する別の方法:

// declare and initialize an array
int x[] = {19, 10, 8, 17, 9, 15};

ここでは、配列のサイズについて言及していません。このような場合、コンパイラは自動的にサイズを計算します。


空のメンバーを持つ C++ 配列

C++ では、配列のサイズが n の場合 、最大 n まで保存できます 配列内の要素数。ただし、n 未満を格納するとどうなるでしょうか 要素数。

たとえば、

// store only 3 elements in the array
int x[6] = {19, 10, 8};

ここで、配列 x サイズは 6 です .ただし、3 つの要素のみで初期化しました。

このような場合、コンパイラはランダムな値を残りの場所に割り当てます。多くの場合、このランダムな値は単に 0 です .

<図>

配列要素を挿入して出力する方法

int mark[5] = {19, 10, 8, 17, 9}

// change 4th element to 9
mark[3] = 9;

// take input from the user
// store the value at third position
cin >> mark[2];


// take input from the user
// insert at ith position
cin >> mark[i-1];

// print first element of the array
cout << mark[0];

// print ith element of the array
cout >> mark[i-1];

例 1:配列要素の表示

#include <iostream>
using namespace std;

int main() {
    int numbers[5] = {7, 5, 6, 12, 35};

    cout << "The numbers are: ";

    //  Printing array elements
    // using range based for loop
    for (const int &n : numbers) {
        cout << n << "  ";
    }


    cout << "\nThe numbers are: ";

    //  Printing array elements
    // using traditional for loop
    for (int i = 0; i < 5; ++i) {
        cout << numbers[i] << "  ";
    }

    return 0;
}

出力

The numbers are: 7  5  6  12  35
The numbers are: 7  5  6  12  35

ここでは、for を使用しています。 i = 0 から反復するループ i = 4 まで .各繰り返しで、 numbers[i] を出力しました .

再び範囲ベースの for ループを使用して、配列の要素を出力しました。このループの詳細については、C++ Ranged for Loop を確認してください。

注: 範囲ベースのループでは、コード const int &n を使用しました int n の代わりに 範囲宣言として。ただし、const int &n 次の理由でより好ましい:

<オール>
  • int n の使用 配列要素を変数 n にコピーするだけです 各反復中。これはメモリ効率が良くありません。

    &n ただし、配列要素のメモリ アドレスを使用して、新しい変数にコピーせずにデータにアクセスします。これはメモリ効率が良いです。
  • 配列要素を変更するのではなく、単純に出力します。したがって、const を使用します。 配列の値を誤って変更しないようにします。

  • 例 2:ユーザーから入力を受け取り、それらを配列に格納する

    #include <iostream>
    using namespace std;
    
    int main() {
        int numbers[5];
    
        cout << "Enter 5 numbers: " << endl;
    
        //  store input from user to array
        for (int i = 0; i < 5; ++i) {
            cin >> numbers[i];
        }
    
        cout << "The numbers are: ";
    
        //  print array elements
        for (int n = 0; n < 5; ++n) {
            cout << numbers[n] << "  ";
        }
    
        return 0;
    }

    出力

    Enter 5 numbers: 
    11
    12
    13
    14
    15
    The numbers are: 11  12  13  14  15

    繰り返しますが、for を使用しました。 i = 0 から繰り返すループ i = 4 まで .各反復で、ユーザーからの入力を受け取り、それを numbers[i] に保存しました .

    次に、別の for を使用しました ループしてすべての配列要素を出力します。


    例 3:for ループを使用した配列要素の合計と平均の表示

    #include <iostream>
    using namespace std;
    
    int main() {
        
        // initialize an array without specifying size
        double numbers[] = {7, 5, 6, 12, 35, 27};
    
        double sum = 0;
        double count = 0;
        double average;
    
        cout << "The numbers are: ";
    
        //  print array elements
        // use of range-based for loop
        for (const double &n : numbers) {
            cout << n << "  ";
    
            //  calculate the sum
            sum += n;
    
            // count the no. of array elements
            ++count;
        }
    
        // print the sum
        cout << "\nTheir Sum = " << sum << endl;
    
        // find the average
        average = sum / count;
        cout << "Their Average = " << average << endl;
    
        return 0;
    }

    出力

    The numbers are: 7  5  6  12  35  27
    Their Sum = 92
    Their Average = 15.3333

    このプログラムでは:

    <オール>
  • double を初期化しました numbers という名前の配列 ただし、そのサイズは指定しません。 3 つの double 変数 sum も宣言しました , 、および平均 .

    ここでは、sum =0count = 0 .
  • 次に、範囲ベースの for を使用しました ループして配列要素を出力します。ループの各反復で、現在の配列要素を sum に追加します .
  • count の値も増やします 1 for ループの終わりまでに配列のサイズを取得できるように、各反復で。
  • すべての要素を出力した後、すべての数値の合計と平均を出力します。数値の平均は average = sum / count; で与えられます
  • 注: レンジの for を使用しました 通常の for の代わりにループします ループ。

    通常の for loop では、反復回数を指定する必要があります。これは、配列のサイズによって決まります。

    しかし、遠距離 for loop はそのような指定を必要としません。


    ​​C++ 配列が範囲外

    サイズ 10 の配列を宣言すると、配列にはインデックス 0 から 9 までの要素が含まれます。

    ただし、インデックス 10 または 10 を超える要素にアクセスしようとすると、未定義の動作が発生します。


    C言語

    1. C# 配列
    2. C# 多次元配列
    3. C# ジャグ配列
    4. C++ 型変換
    5. C++ 演算子
    6. C++ コメント
    7. C++ プログラミングで配列を関数に渡す
    8. Java コピー配列
    9. C++ の配列 |宣言する |初期化 |配列へのポインタの例
    10. 例による配列の C++ 動的割り当て
    11. MATLAB-配列