Skip to content

6. 繰り返し処理

6.3 配列

6.3.1 配列の基本

プログラミングでは、同じような変数を複数作りたいときがある。例えば、100人の点数の平均点を取りたいときには変数は100個必要となる。このときに、配列を使う。配列とは、変数の集合のようなものである。

C++において配列を使う時は、vectorを用いる。stringと同様に、vectorをインクルードする必要がある。

cpp
#include <vector>

以下のようにして、<>内に型を宣言することで、配列を定義することができる。

cpp
vector<int> array;
vector<string> strarray;

このように記述すると空の配列が作成される。以下のように、初めから配列に値を入れることもできる。

cpp
vector<int> arr = {10, 20, 30, 40, 50};

以下のように、[]の中に数字を書くことで要素を取得できる。数列を考えた時のだと思うと良い。このとき、要素番号は0始まりである。

cpp
vector<int> arr = {10, 20, 30, 40, 50};
cout << arr[2] << endl;
arr[1] = 100;
cout << arr[1] << endl;
Output
30
100

6.3.2 size

.size()とすると、配列の要素数を調べることができる。

cpp
vector<int> arr = {10, 20, 30, 40, 50};
cout << arr.size() << endl;

このコードの出力は以下のようになる。

Output
5

.size()forを用いれば、配列の要素をすべて取得することができる。

cpp
vector<int> arr = {10, 20, 30, 40, 50};
for (int i=0; i < arr.size(); i++) {
  cout << arr[i] << endl;
}

for文の中で、arr[0]からarr[4]までが1つずつ出力されるコードだという事が理解できるだろうか。i < arr.size()の条件から、iは0から4までの場合で実行される。(5は5 < 5となり条件を満たさない。)

6.3.3 push_back

.push_back()を用いると、配列の末尾に新しい要素を追加することができる。

cpp
vector<int> arr = {10, 20, 30, 40, 50};
arr.push_back(-10);

cout << arr[5] << endl;
cout << arr.size() << endl;

このコードの出力は以下のようになる。

Output
-10
6

for文と組み合わせると、できることが非常に広がる。

6.3.4 多次元配列

配列の中に配列を入れ子にすることで多次元配列を作ることができる。

以下は2次元配列の例である。(オセロ盤みたいなイメージ)

cpp
vector<vector<int>> v = {
  {1, 2, 3, 4},
  {3, 5, 1, 2},
  {10, 20, 10, 20},
};