初心者向け入門! c++ 配列

配列って?

配列は同じ型の変数を複数並べたものです。
配列の大きさは宣言時に決めた要素数から変える事はできませんが、動的配列という特殊な配列は要素数を変えることが出来ます。

配列の書き方

配列は通常の変数と同様に宣言と初期化を行います。
配列の宣言は型名 変数名[要素数];と書きます。


ただし、宣言と初期化を同時に行う場合にのみ、特殊な書き方が可能になります。
配列の宣言と初期化を同時に行う場合は型名 変数名[要素数]={};と書き、{}の間に初期化する値を,区切りで書きます。


配列の要素を参照するためには変数名[要素番号]と書きます。要素番号は0から始まり、要素数3なら0~2が要素番号として有効な値になります。
要素数を超える値で配列を参照しようとした場合エラーになります。

#include<stdio.h>
int main()
{
 //宣言と初期化を同時に行う
 int arayA[3]={0,2,4};//{}の間に初期化の値を書き、要素間を,で区切る

 //arayA出力
 for(int i=0;i<3;i++)
 {
  printf("arayA[%d] = %d\n",i,arayA[i]);
 }
}
//実行結果
arayA[0] = 0
arayA[1] = 2
arayA[2] = 4
#include<stdio.h>
int main()
{
 //宣言してから初期化する
 int arayB[3];
 arayB[0]=0;
 arayB[1]=2;
 arayB[2]=4;
 
 //arayB出力
 for(int i=0;i<3;i++)
 {
  printf("arayB[%d] = %d\n",i,arayB[i]);
 }
}
//実行結果
arayB[0] = 0
arayB[1] = 2
arayB[2] = 4

二次元配列

二次元配列は縦横に並んだ配列です。
二次元配列の宣言は型名 変数名[縦要素数][横要素数]; と書きます。

宣宣言と初期化を同時に行う場合は型名 変数名[縦要素数][横要素数]={} と書き、通常の配列と同様に,区切りで要素を指定します。

#include<stdio.h>
int main()
{
 //宣言と初期化を同時に行う
 int arayC[3][2]={
   0,2,4,
   1,3,5
   };//{}の間に初期化の値を書き、要素間を,で区切る

 //arayC出力
 for(int i=0;i<3;i++)
 {
  for(int j=0;j<3;j++)
  {
   printf("arayC[%d][%d] = %d\n",i,j,arayC[i][j]);
  } 
 }
}

動的配列って?

動的配列は後から要素数が変わる可能性がある配列になります。
動的配列にはSTL(標準ライブラリ)を使うのが一般的です。
今回扱うvectorinclude<vector>と書かなければば使えない点に注意しましょう。

vectorは他の配列と同様に、宣言してから初期化する方法と、宣言と初期化を同時に書くことが出来ます。
配列と違うのは、宣言時に要素数を指定する必要がない点です。

vector の宣言はstd::vector<型名> 変数名; と書きます。

vector の宣言と初期化を同時に行う場合、 vecctor<型名> 変数名={}; と書き、,区切りで要素を指定します。

vectorに後から要素を追加する場合、変数名.push_back(追加する値);と書きます。

#include<stdio.h>
#include<vector>

int main()
{
	//宣言と初期化を同時に行う
    //int型のvector
	std::vector<int> vecA;
	for (int i = 1; i <= 10; i++)
	{
		vecA.push_back(i*i);//要素を一番後ろに追加する
	}
	//vecA出力
	for (int i = 0; i < vecA.size(); i++)//.size()で配列の要素数を取得できる
	{
		printf("vecA[%d] = %d\n", i, vecA[i]);
	}
}
//実行結果
vecA[0] = 1
vecA[1] = 4
vecA[2] = 9
vecA[3] = 16
vecA[4] = 25
vecA[5] = 36
vecA[6] = 49
vecA[7] = 64
vecA[8] = 81
vecA[9] = 100

#include<stdio.h>
#include<vector>

int main()
{
	//宣言と初期化を同時に行う
 //int型のvector
	std::vector<int> vecB = {
	  0,2,4,
	  1,3,5
	};
  //vecB出力
	for (int i = 0; i < vecB.size(); i++)
	{
			printf("vecB[%d] = %d\n", i, vecB[i]);
	}
}
//実行結果
vecB[0] = 0
vecB[1] = 2
vecB[2] = 4
vecB[3] = 1
vecB[4] = 3
vecB[5] = 5