C++11 で追加された固定長配列のコンテナクラス.vector や list のようなデータ構造を持たず,通常配列と同じように要素のためにだけメモリを消費する.vector に比べるとメモリ効率がいい.

include

#include <array>

宣言・初期化

宣言

std::array<変数型, 要素数> ar;

初期化

std::array<変数型, N> ar{data1,data2,...,dataN};//Nはデータ数

以下の例のように要素数より初期化リストの要素数が少ないときは,デフォルトの値で初期化される.

std::array<int, 4> ar{1, 2};//ar[2],ar[3]は0で初期化

二次元array

配列の場合とは要素数の並び順が逆転する. 初期化子は配列の場合の初期化子を,さらに波括弧で括る必要がある.

std::array<std::array<int, 3>, 2> arr
{{
	{ 1, 2, 3 },
  { 4, 5, 6 }
}};
/*
上と同等の配列
int arr[2][3] = 
{
	{ 1, 2, 3 },
	{ 4, 5, 6 }
};
*/

コピー

std::array<int, 3> org{1, 2, 3};
std::array<int, 3> x(org);      // コピーコンストラクタ

要素の状態

空かどうか

ar.empty()

要素数

ar.size()