Standard library header <array> (C++11)
From cppreference.net
이 헤더는 containers 라이브러리의 일부입니다.
Includes |
||
|
(C++20)
|
3-way 비교 연산자 지원 | |
|
(C++11)
|
std::initializer_list 클래스 템플릿 | |
클래스 |
||
|
(C++11)
|
고정 크기 인플레이스 연속 배열
(클래스 템플릿) |
|
|
(C++11)
|
튜플과 유사한 타입의 요소 개수를 구함
(클래스 템플릿) |
|
|
(C++11)
|
튜플과 유사한 타입의 요소 타입들을 획득함
(클래스 템플릿) |
|
|
(C++11)
|
array
의 크기를 구함
(클래스 템플릿 특수화) |
|
|
(C++11)
|
array
의 요소 타입을 얻음
(클래스 템플릿 특수화) |
|
함수 |
||
|
(C++11)
(C++11)
(C++20에서 제거됨)
(C++11)
(C++20에서 제거됨)
(C++11)
(C++20에서 제거됨)
(C++11)
(C++20에서 제거됨)
(C++11)
(C++20에서 제거됨)
(C++20)
|
두
array
의 값을 사전식으로 비교합니다
(함수 템플릿) |
|
|
(C++11)
|
std::swap
알고리즘을 특수화함
(함수 템플릿) |
|
|
(C++20)
|
내장 배열로부터
std::array
객체를 생성합니다
(함수 템플릿) |
|
|
(C++11)
|
array
의 요소에 접근합니다
(function template) |
|
범위 접근 |
||
|
(C++11)
(C++14)
|
컨테이너나 배열의 시작 부분을 가리키는 반복자를 반환합니다
(함수 템플릿) |
|
|
(C++11)
(C++14)
|
컨테이너나 배열의 끝을 가리키는 반복자를 반환합니다
(함수 템플릿) |
|
|
(C++14)
|
컨테이너나 배열의 시작 부분에 대한 역방향 반복자를 반환합니다
(함수 템플릿) |
|
|
(C++14)
|
컨테이너나 배열에 대한 역방향 끝 반복자를 반환합니다
(함수 템플릿) |
|
|
(C++17)
(C++20)
|
컨테이너나 배열의 크기를 반환합니다
(함수 템플릿) |
|
|
(C++17)
|
컨테이너가 비어 있는지 확인합니다
(함수 템플릿) |
|
|
(C++17)
|
기본 배열에 대한 포인터를 획득함
(함수 템플릿) |
|
시놉시스
// 대부분 독립 실행 #include <compare> #include <initializer_list> namespace std { // 클래스 템플릿 array template<class T, size_t N> struct array; // 부분적으로 독립 실행 template<class T, size_t N> constexpr bool operator==(const array<T, N>& x, const array<T, N>& y); template<class T, size_t N> constexpr /*synth-three-way-result*/<T> operator<=>(const array<T, N>& x, const array<T, N>& y); // 특수화된 알고리즘 template<class T, size_t N> constexpr void swap(array<T, N>& x, array<T, N>& y) noexcept(noexcept(x.swap(y))); // array 생성 함수 template<class T, size_t N> constexpr array<remove_cv_t<T>, N> to_array(T (&a)[N]); template<class T, size_t N> constexpr array<remove_cv_t<T>, N> to_array(T (&&a)[N]); // tuple 인터페이스 template<class T> struct tuple_size; template<size_t I, class T> struct tuple_element; template<class T, size_t N> struct tuple_size<array<T, N>>; template<size_t I, class T, size_t N> struct tuple_element<I, array<T, N>>; template<size_t I, class T, size_t N> constexpr T& get(array<T, N>&) noexcept; template<size_t I, class T, size_t N> constexpr T&& get(array<T, N>&&) noexcept; template<size_t I, class T, size_t N> constexpr const T& get(const array<T, N>&) noexcept; template<size_t I, class T, size_t N> constexpr const T&& get(const array<T, N>&&) noexcept; }
클래스 템플릿 std::array
namespace std { template<class T, size_t N> struct array { // 타입 using value_type = T; using pointer = T*; using const_pointer = const T*; using reference = T&; using const_reference = const T&; using size_type = size_t; using difference_type = ptrdiff_t; using iterator = /* implementation-defined */; using const_iterator = /* implementation-defined */; using reverse_iterator = std::reverse_iterator<iterator>; using const_reverse_iterator = std::reverse_iterator<const_iterator>; // 집합 타입을 위한 명시적 생성/복사/소멸 없음 constexpr void fill(const T& u); constexpr void swap(array&) noexcept(is_nothrow_swappable_v<T>); // 반복자 constexpr iterator begin() noexcept; constexpr const_iterator begin() const noexcept; constexpr iterator end() noexcept; constexpr const_iterator end() const noexcept; constexpr reverse_iterator rbegin() noexcept; constexpr const_reverse_iterator rbegin() const noexcept; constexpr reverse_iterator rend() noexcept; constexpr const_reverse_iterator rend() const noexcept; constexpr const_iterator cbegin() const noexcept; constexpr const_iterator cend() const noexcept; constexpr const_reverse_iterator crbegin() const noexcept; constexpr const_reverse_iterator crend() const noexcept; // 용량 constexpr bool empty() const noexcept; constexpr size_type size() const noexcept; constexpr size_type max_size() const noexcept; // 요소 접근 constexpr reference operator[](size_type n); constexpr const_reference operator[](size_type n) const; constexpr reference at(size_type n); // freestanding-deleted constexpr const_reference at(size_type n) const; // freestanding-deleted constexpr reference front(); constexpr const_reference front() const; constexpr reference back(); constexpr const_reference back() const; constexpr T* data() noexcept; constexpr const T* data() const noexcept; }; template<class T, class... U> array(T, U...) -> array<T, 1 + sizeof...(U)>; }