본문 바로가기

[C++11] std::array

반응형

c++11에 추가된 고정 크기 배열이다.

C언어 배열을 대체할 수 있다.

#include <iostream>
#include <array>

int main()
{
    std::array<int, 5> arr1 {1,2,3,4,5};
    std::array<int, 5> arr2 {}; // 모든 요소 0으로 초기화

    //범위 기반 for
    for(int i  : arr1) std::cout << i << std::endl;
        
    //전통적인 for문
    for(std::array<int,5>::iterator i = arr2.begin(); i != arr2.end(); i++) std::cout << *i << std::endl;

    //요소 복사, arr1 {1,2,3} -> arr2로 복사
    std::copy(arr1.begin(), arr1.begin() + 3, arr2.begin());

    return 0;
}

 

장점

1. 안전성: 배열의 크기를 컴파일 시간에 결정한다. 따라서 범위를 벗어나는 인덱스 접근을 컴파일러가 잡아낼 수 있다.

2. STL과의 호환성: 다른 STL 컨테이너와의 유사한 인터페이스를 제공하고, STL 알고리즘(std::find, std::sort 등)과 결합하여 사용할 수 있다.

반응형

'C&C++' 카테고리의 다른 글

[C++11] constexpr  (0) 2024.06.23
[C++11] nullptr  (0) 2024.06.23
[C++11] 범위 기반 for (range-based for loop)  (0) 2024.06.23
[C++11] auto  (0) 2024.06.23
[C++11] 중괄호 초기화 리스트 (initializer list)  (0) 2024.06.23