이 글에서는 C++ STL의 std::array 컨테이너가 제공하는 get() 함수에 대해 자세히 알아보겠습니다. 이 함수는 배열 컨테이너에서 i번째 요소를 가져오는 데 사용되며, 컴파일 타임에 인덱스가 검증되어 안전하게 요소에 접근할 수 있다는 장점이 있습니다.
문법
get<i>(array_name)
get() 함수는 두 개의 필수 매개변수를 받습니다.
- i (인덱스): 가져올 요소의 위치를 나타내며, 반드시 컴파일 타임 상수여야 합니다.
- array_name: 요소를 가져올 대상 배열의 이름입니다.
함수는 지정된 i번째 요소의 참조를 반환합니다. 인덱스는 0부터 시작한다는 점에 유의하세요.
예제
다음 예제를 통해 get() 함수의 동작 방식을 확인해 보겠습니다.
#include<iostream>
#include<array>
using namespace std;
int main() {
array<int, 10> arr = {0, 11, 22, 33, 44, 55, 66, 77, 88, 99};
cout << "1번째 요소: " << get<0>(arr) << endl;
cout << "6번째 요소: " << get<5>(arr) << endl;
cout << "8번째 요소: " << get<7>(arr) << endl;
cout << "10번째 요소: " << get<9>(arr) << endl;
return 0;
}
실행 결과
1번째 요소: 0 6번째 요소: 55 8번째 요소: 77 10번째 요소: 99
주요 특징과 활용 팁
get() 함수는 일반적인 [] 연산자나 at() 메서드와 달리 인덱스가 컴파일 타임 상수여야 한다는 특징이 있습니다. 범위를 벗어난 인덱스를 사용하면 컴파일 오류가 발생하므로, 런타임 전에 잘못된 접근을 사전에 차단할 수 있습니다.
또한 std::tie와 함께 사용하면 여러 요소를 한 번에 언패킹(unpacking)하는 것도 가능해, 구조화된 데이터를 다룰 때 유용하게 활용할 수 있습니다.