1-14-0. 配列

公開日: 20:28 1. 基本編/1-14. 配列/1-14-0. 配列

C++では配列データ構造を備えており、同一の型の要素を固定サイズの連続した集まりに保持します。配列はデータの集まりを保持するのに使われますが、配列を同じ型の変数の集まりと考えるとより便利です。 

number0、number1、…、number99、と個々の整数を宣言する代わりに配列変数を1つ宣言し、numbers[0]、numbers[1]、number[99]、と表現できます。特定の配列の要素にアクセスするにはインデックスを使います。

すべての配列は連続したメモリ位置で構成されます。最下位アドレスは最初の要素、最上位アドレスは最後の要素に対応します。

配列の宣言

C++で配列を宣言するには、プログラマは要素の型とその数を指定する必要があり、次のようになります。
型 配列名 [ 配列サイズ ];
これは1次配列と呼ばれます。配列サイズはC++で有効なデータ型で0より大きい整数である必要があります。例えば、double型のbalanceという名前の10個の要素を持つ配列は次のようになります。
double balance[10];

配列の初期化

C++の配列の要素は次のような構文で1つ1つ初期化できます。
double balance[5] = {1000.0, 2.0, 3.4, 17.0, 50.0};
{}の間にある値の数は宣言した[]間の要素の数を超えられません。次の例は配列の配列 の1要素への代入です。 もし配列のサイズを省略した場合、初期化子を保持できる充分な大きさで生成されま す。よって、次のように書くと
double balance[] = {1000.0, 2.0, 3.4, 17.0, 50.0};
1つ前の例と同じ配列が作成されます。 balance[4] = 50.0; 上の構文は配列の5番目の要素に50.0を代入します。配列は0から始まるので[4]は5番目 となります。

配列の要素へアクセス

要素へのアクセスは配列名にインデックスをつけて行います。これは配列名の後ろの[] 内に要素のインデックスを書くことで行います。
double salary = balance[9];
上の構文は配列から10番目の要素を受け取りsalary変数に値を代入します。次の例は宣言、代入、要素へのアクセスを使っています。
#include <iostream>
using namespace std;
 
#include <iomanip>
using std::setw;
 
int main ()
{
   int n[ 10 ]; // nは整数型10個の配列 

   // 配列nの要素を0で初期化   
   for ( int i = 0; i < 10; i++ )
   {
      n[ i ] = i + 100; // 要素n[i]をi + 100にセット
   }
   cout << "Element" << setw( 13 ) << "Value" << endl;
 
   // 各配列の要素の値を出力
   for ( int j = 0; j < 10; j++ )
   {
      cout << setw( 7 )<< j << setw( 13 ) << n[ j ] << endl;
   }
 
   return 0;
}
このプログラムはsetw()関数を使って出力を揃えています。上のコードをコンパイルし 実行すると、次のような結果が得られます。 Element Value
0 100
1 101
2 102
3 103
4 104
5 105
6 106
7 107
8 108
9 109

C++の配列の詳細

C++において配列は重要であり、より詳細を知っておくべきです。以下は重要な概念で あり、C++プログラマにとって明確にされているべきものです。
構文説明
多次元配列C++は多次元配列をサポートしています。多次元配列の最も単純なものは2次元配列です
配列へのポインタインデックス無しで配列名を指定するだけで配列の先頭要素へのポインタとなります
関数への配列渡しインデックス無しで配列名を指定するだけで関数に配列のポインタを渡すことが可能です
配列を返す関数C++は関数に配列を返すことを許可しています
  • ?±??G???g???[?d????u?b?N?}?[?N???A

0 件のコメント :

コメントを投稿