Namespaces
Variants

std:: get (std::array)

From cppreference.net
헤더 파일에 정의됨 <array>
template < std:: size_t I, class T, std:: size_t N >
T & get ( std:: array < T,N > & a ) noexcept ;
(1) (C++11부터)
(C++14부터 constexpr)
template < std:: size_t I, class T, std:: size_t N >
T && get ( std:: array < T,N > && a ) noexcept ;
(2) (C++11부터)
(C++14부터 constexpr)
template < std:: size_t I, class T, std:: size_t N >
const T & get ( const std:: array < T,N > & a ) noexcept ;
(3) (C++11부터)
(C++14부터 constexpr)
template < std:: size_t I, class T, std:: size_t N >
const T && get ( const std:: array < T,N > && a ) noexcept ;
(4) (C++11부터)
(C++14부터 constexpr)

배열에서 I 번째 요소를 tuple-like 인터페이스를 사용하여 추출합니다.

I [ 0 , N ) 범위 내의 정수 값이어야 합니다. 이는 at() 또는 operator[] 와 달리 컴파일 타임에 강제됩니다.

목차

매개변수

a - 내용을 추출할 배열

반환값

I th 번째 요소에 대한 참조 a .

복잡도

상수.

예제

#include <array>
#include <iostream>
constexpr std::array v{1, 2, 3};
static_assert(get<0>(v) == 1 && get<1>(v) == 2 && get<2>(v) == 3);
int main()
{
    std::array<int, 3> a;
    // 값 설정:
    get<0>(a) = 1, get<1>(a) = 2, get<2>(a) = 3;
    // 값 가져오기:
    std::cout << '(' << get<0>(a) << ',' << get<1>(a) << ',' << get<2>(a) << ")\n";
}

출력:

(1,2,3)

결함 보고서

다음 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.

DR 적용 대상 게시된 동작 올바른 동작
LWG 2485 C++11 const array&&에 대한 오버로드가 없음 오버로드가 추가됨

참고 항목

Structured binding (C++17) 지정된 이름들을 초기화자의 부분 객체나 튜플 요소에 바인딩합니다
지정된 요소에 접근합니다
(public member function)
범위 검사와 함께 지정된 요소에 접근합니다
(public member function)
튜플의 지정된 요소에 접근합니다
(function template)
pair 의 요소에 접근합니다
(function template)
인덱스나 타입(타입이 고유한 경우)으로 variant의 값을 읽으며, 오류 시 예외를 발생시킵니다
(function template)
std::ranges::subrange 에서 반복자나 센티널을 얻습니다
(function template)
std::complex 에서 실수부나 허수부에 대한 참조를 얻습니다
(function template)