C++11 で追加された固定長配列のコンテナクラス.vector や list のようなデータ構造を持たず,通常配列と同じように要素のためにだけメモリを消費する.vector に比べるとメモリ効率がいい.
#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で初期化
配列の場合とは要素数の並び順が逆転する. 初期化子は配列の場合の初期化子を,さらに波括弧で括る必要がある.
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()