Nagie's DevStory
[STL] 01. std::array 본문
728x90
std::array는 C++ 11 표준 부터 사용할 수 있다.
C 스타일 배열과 동일한 역할을 하며 <array> 헤더에 정의가 되어있고 그다지 존재감이 있어 보이지는 않는다...
다음은 std::array의 사용 예시다.
#include <iostream>
#include <array>
int main() {
std::array<int, 5> num = { 1,2,3,4,5 };
std::cout << num[1] << std::endl;
}
C 스타일 배열과 동일하게 첨자 연산자를 사용해 접근이 가능한 이유는 연산자 오버로딩이 되어있어서 그렇다.
일차원 배열까진 그래도 쓸만한 거 같은 느낌이 드는데 차원이 많아지면 말이 달라진다.
2D 배열
#include <array>
int main() {
// 2x3 크기의 이차원 배열
std::array<std::array<int, 3>, 2> my2DArray;
// 배열 요소에 접근
my2DArray[0][0] = 1;
my2DArray[0][1] = 2;
my2DArray[0][2] = 3;
my2DArray[1][0] = 4;
my2DArray[1][1] = 5;
my2DArray[1][2] = 6;
}
3D 배열
#include <array>
int main() {
// 2x3x4 크기의 삼차원 배열
std::array<std::array<std::array<int, 4>, 3>, 2> my3DArray;
// 배열 요소에 접근
my3DArray[0][0][0] = 1;
my3DArray[0][0][1] = 2;
// 나머지 요소에 대한 초기화 및 접근
}
그렇다 그냥 보기만 해도 기존 C 스타일 배열보다 작성법도 귀찮고 눈에 안 들어온다.
이런 이유로 C++에선 std::array를 권장하지만 다들 잘 안 쓰지 않나 싶다.
728x90
Comments