配列型

一列に並べ〜!


今までの型だと、一つの値を一つづつ丁寧に扱うことしかできなかった。

ここでは、扱う数が決まっている、それなりの量のデータを格納するときの型について書くよ。

配列型 は、データを格納する 要素 を指定した数だけ持つ。

文法はこう。

格納する型 名前 [ 要素数 ]

int array[10]; // int が 10 個分

初期化

この型で初期化するときには、リスト初期化 が使える。

これは以下のように、{ から } の間に、, で区切って値を入れたものを初期値にする書き方だよ。

要素数を指定して、同じ長さのリストを用意する場合

その長さぴったりの配列型の変数が作られる。

int nums[5] = {0, 2, 4, 8, 1};

nums はこんな感じになる。

位置
00
12
24
38
41

インデックス (位置を表す数字) は 0 から始まる。これ大事。

要素数を指定しない場合

リスト側と同じ要素数になる。

int nums[] = {0, 4, 5};
//       ↑ に 3 を入れたのと同じ

要素数より、リストの数が少ない場合

リスト側で足りない部分には、0 に相当するものが入る。

int buffer[15] = {}; // 残りすべては 0
double vertexes[20] = {1.0, 1.0, 1.0}; // 残りは 0.0

要素にアクセス

作った配列は、ちゃんとその中身を触れる。

配列に格納されている値のことを 要素 っていうよ。

要素にアクセスするときは、[] の間に インデックス を入れる。

int nums[5] = {1, 4, 5, 7};

nums[0]; // 1
nums[3]; // 5

nums[2] = 2;
nums[4] = 8;

変数も入れられるので、こういうこともできる。

#include <iostream>

int main() {
  int nums[5] = {1, 4, 5, 7};
  for (int i = 0; i < 5; ++i) { // i は 0 から 4 へ
    int const &nums_i = nums[i]; // i 番目の nums
    std::cout << "nums[" << i << "] ~~~ " << nums_i << "\n";
  }
}

まぁこれからこの配列型を使う機会はほとんどない。

けれど、複数の値を格納したり取り出したりする感覚 を少しつかんでもらえたらいいな。

ちなみに、ここでやった リスト初期化 は今までの型にも使える。

int a = {}; // 0 と同じ
double b = {2.0};