C++ STL 시리즈
1 / 3
C++ 17을 기준으로 cppreference를 참고하여 작성했습니다.
std::array
template<
class T,
std::size_t N
> struct array;
고정된 크기의 배열을 캡슐화한 컨테이너다. 컨테이너 타입은 집합체(aggregate type)로, 모든 멤버가 public이고 가상함수가 없으므로 C 스타일 구조체와 거의 비슷하다. (vector, deque는 내부에 private 멤버가 존재함.)
array의 모든 원소는 C 스타일 배열과 동일하게 인덱스로 임의 접근이 가능하다. 컨테이너의 크기도 알 수 있다. 또한 STL의 반복자(LegacyRandomAccessIterator, LegacyContinuousIterator)를 제공한다.
예시
#include <array>
#include <iostream>
int main(){
// 크기 5의 std::array 선언
std::array<int, 5> arr = {1,2,3,4,5};
// 인덱스를 사용하여 접근
arr[1] = 100;
for (const auto& n : arr) {
std::cout << n << ' ';
}
std::cout << std::endl;
for (auto iter = arr.rbegin(); iter != arr.rend(); ++iter) {
std::cout << *iter << ' ';
}
std::cout << std::endl;
// 출력 결과
// 1 100 3 4 5
// 5 4 3 100 1
std::cout << "arr의 길이 : " << arr.size() << std::endl;
// 출력 결과
// arr의 길이 : 5
}