c arrays with examples
C ++の配列とは何ですか?なぜそれらは有用ですか?
これで 完全なC ++トレーニングシリーズ 、このチュートリアルでは、C ++の配列を見ていきます。
C ++の配列は、データのコレクションとして簡単に定義できます。
私が設計しているアプリケーションの1つが、整数データ型の100個の変数を必要とする場合。次に、変数宣言を使用して、100個の異なる整数変数を宣言する必要があります。これは、順番に、本当に面倒になります。
これの代わりに、連続する100個のメモリ位置を保持する単一の変数を宣言した場合はどうでしょうか。ここでアレイが登場します。
学習内容:
C ++の配列
配列は、同じデータ型の変数のコレクションとして定義でき、連続したメモリ位置を持ちます。
したがって、100個の整数の配列を定義すると、そのメモリ表現は次のようになります。
不和で動作するボイスチェンジャー
上に示したように、0〜99はこの配列のメモリ位置であり、連続しています。空白のパネルは実際の配列要素です。配列の個々の要素には、インデックスを使用してアクセスできます。上の図では、配列の最初のインデックスは0で、最後のインデックスは99です(これは100要素の配列であるため)。012 3 45……。 …..99。
配列の開始インデックスは常に0であることに注意してください。したがって、n個の要素の配列の場合、配列の開始インデックスは0になり、最後のインデックスはn-1になります。
配列を宣言する
C ++での配列宣言は、通常、次のようになります。
datatype arrayName ( arraySize );
上記の宣言は1次元配列用です。ここで、データ型はC ++で受け入れ可能な任意のデータ型です。 「arrayName」は作成する配列の名前ですが、常に角かっこ(())で囲まれたarraySizeは、配列が保持する要素の数です。 arraySizeは、常に定数式である必要があります。
例えば、整数型の10個の要素を持つmyarrayという名前の配列を宣言する必要がある場合、宣言は次のようになります。 :
int myarray (10);
同様に、20個の要素を持つdouble型の配列「salary」の宣言は、次のようになります。
double salary ( 20 );
配列の初期化
配列が宣言されると、適切な値で初期化できます。配列に割り当てられる値の数は、宣言で指定された配列のサイズを超えてはなりません。
それでは、サイズ5の配列を宣言し、整数と入力して、myarrayという名前を付けましょう。
int myarray(5);
次のように、配列要素に値を1つずつ割り当てることができます。
myarray(0) = 1; myarray(1) = 2; myarray(2) = 3; myarray(3) = 4; myarray(4) = 5;
以下に示すように、個々の要素を初期化する代わりに、宣言自体の間に配列全体を初期化することもできます。
int myarray(5) = {1, 2, 3, 4, 5};
上で見たように、配列要素の値への初期化は中括弧({})を使用して行われます。
上記の初期化の結果、配列は次のようになります。
サイズを指定せずに、要素を指定するだけで配列を初期化することもできます。
これは、以下に示すように実行されます。
int myarray() = {1, 2, 3, 4, 5};
この場合、配列のサイズが指定されていない場合、コンパイラーは、配列が初期化される要素の数に等しいサイズを割り当てます。したがって、上記の場合、myarrayのサイズは5になります。
配列要素へのアクセス
配列要素には、配列インデックスを使用してアクセスできます。配列インデックスは常に0から始まり、arraySize-1まで続きます。
配列要素にアクセスするための構文は次のとおりです。
arrayName(index)
上で宣言したmyarrayを例として取り上げましょう。
4にアクセスする必要がある場合thmyarrayの要素の場合、次のように実行できます。
myarray(3);
2を割り当てる必要がある場合ndmyarrayの要素を整数変数に変換し、次のようにします。
int sec_ele = myarray(1);
C ++では、配列のサイズを超えて配列要素にアクセスすると、プログラムは正常にコンパイルされますが、予期しない結果になる可能性があることに注意してください。
すべての配列要素に一度にアクセスする必要がある場合は、C ++の反復構造を利用できます。これにより、配列のすべての要素をトラバースし、インデックス変数を使用してそれらにアクセスできます。
すべての構成の中で、forループは、定義上「for」ループがインデックス変数を使用してシーケンスをトラバースし、各反復後に自動インクリメントするため、配列にアクセスするのに理想的です。
例えば、前に定義したものと同じmyarrayを使用します。 forループを使用して、myarray要素にアクセスするためのコードを以下に示します。
for(int i = 0;i<5;i++) { cout<上記のコードでは、myarrayは0から5までのインデックス変数Iを使用してトラバースされ、要素は各反復後に出力されます。
上記のコードの出力は次のとおりです。
1
二
3
4
5
上記のように配列要素にアクセスする以外に、変数を使用してすべての異なる操作を実行するのと同じように、配列要素にアクセスして他の演算子で使用することもできます。
配列内のすべての要素の合計を出力する次のプログラムについて考えてみます。
#include include using namespace std; int main() { int myarray(5) = {10, 20,30,40,50}; int sum = 0; for(int i = 0;i<5;i++) { sum += myarray(i); } cout<<'Sum of elements in myarray:
'<上記のコードでは、myarrayという名前の配列を宣言して初期化します。また、変数sumを0に初期化し、forループを使用してmyarrayをトラバースし、各配列要素をsumに追加します。
プログラムによって与えられる最終的な出力は、myarray内のすべての要素の合計であり、次のようになります。
myarrayの要素の合計:
150
プログラムに示されているように、反復ループを使用して配列要素に個別に、または一度にアクセスできます。また、変数に対して操作を実行するのと同じ方法で、配列要素に対してさまざまな操作を実行できます。
結論
これで、配列の基本(配列要素の宣言、初期化、アクセス)について説明した配列に関するこの記事は終わりです。
次のいくつかの記事では、多次元配列、配列ポインター、関数内の配列などについて、他の概念とともに詳しく説明します。
この有益なチュートリアルから、C ++の配列に関する知識をさらに深めていただければ幸いです。
=> Easy C ++トレーニングシリーズをお読みください。
推奨読書