Nagie's DevStory

[STL] 01. std::array 본문

Programming/STL

[STL] 01. std::array

Nagie 2023. 10. 25. 19:52
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