std::arrayは、固定長の配列を扱うためのコンテナです。
この記事では、初心者でもわかりやすくstd::arrayの使い方について詳しく解説します。
std::arrayとは何か
std::arrayは、C++11から導入されたSTL(Standard Template Library)の一部であり、固定長の配列を表現するために使用されます。
std::arrayでは宣言時に要素数を指定し、その後変更することができません。
また、std::arrayは他のSTLコンテナと同様にイテレーターをサポートしており、範囲ベースのforループなどで簡単に要素を取り出すことができます。
例えば以下のように宣言します。
#include <array>
std::array<int, 5> arr = {1, 2, 3, 4, 5};
この場合、int型の要素を5つ持つ配列が作成されます。また、初期化子リストを使用して値を代入しています。初期化子リストは省略可能ですが、省略した場合は全て0で初期化されます。
std::arrayの宣言方法
C++のSTLに含まれるstd::array
は、固定長の配列を扱うためのコンテナです。std::array
を使用することで、配列のサイズを宣言時に指定し、その後変更することができなくなります。
std::arrayの宣言方法は以下のようになります。
#include <array>
std::array<int, 5> myArray; // int型要素を5つ持つ配列を宣言
上記の例では、int型要素を5つ持つ配列を宣言しています。<int, 5>
は、int
型要素を5つ持つ配列であることを示しています。また、myArrayはこの配列の名前です。
また、std::arrayは他のSTLコンテナ同様にイテレーターもサポートしており、以下のように使用することができます。
#include <iostream>
#include <array>
int main() {
std::array<int, 3> myArray = {1, 2, 3};
for (auto it = myArray.begin(); it != myArray.end(); ++it) {
std::cout << *it << " ";
}
return 0;
}
1 2 3
上記の例では、イテレーターを使用してmyArray内の全ての要素を出力しています。
std::arrayの要素へのアクセス方法
std::arrayは、従来のC言語の配列の上位版とも言えるクラスであり、安全かつ簡単に配列を扱うことができます。
std::arrayの要素へのアクセス方法は、従来のC言語の配列と同様に、添字演算子[]を使用する方法を使えます。例えば、以下のようなstd::arrayがあった場合、
#include <array>
int main()
{
std::array<int, 5> arr = {1, 2, 3, 4, 5};
return 0;
}
arr[0]
は1
、arr[1]
は2
、arr[2]
は3、arr[3]
は4
、arr[4]
は5
となります。
また、at()
関数を使用することでも要素へアクセスすることができます。at()
関数では範囲外アクセス時に例外が発生するため、try-catch
を使用することで安全性を高められます。
#include <array>
#include <iostream>
int main()
{
std::array<int, 5> arr = {1, 2, 3, 4, 5};
std::cout << arr.at(0) << std::endl; // 出力結果:1
std::cout << arr.at(6) << std::endl; // 範囲外アクセス例外発生
return 0;
}
1
また、普通の配列と同じようにループ処理することも可能です、
#include <array>
#include <iostream>
int main()
{
std::array<int, 5> arr = { 1, 2, 3, 4, 5 };
//要素数はsize()で取得可能
for (int i = 0; i < arr.size(); i++) {
std::cout << "arr[" << i << "] = " << arr[i] << std::endl;
}
//イテレーターを用いた以下の方法でもループ可能
for (auto num : arr) {
std::cout << num << " ";
}
return 0;
}
arr[0] = 1
arr[1] = 2
arr[2] = 3
arr[3] = 4
arr[4] = 5
1 2 3 4 5
以上がstd::array
の要素へのアクセス方法です。