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)
(constexpr начиная с C++14)
template < std:: size_t I, class T, std:: size_t N >
T && get ( std:: array < T,N > && a ) noexcept ;
(2) (начиная с C++11)
(constexpr начиная с C++14)
template < std:: size_t I, class T, std:: size_t N >
const T & get ( const std:: array < T,N > & a ) noexcept ;
(3) (начиная с C++11)
(constexpr начиная с C++14)
template < std:: size_t I, class T, std:: size_t N >
const T && get ( const std:: array < T,N > && a ) noexcept ;
(4) (начиная с C++11)
(constexpr начиная с C++14)

Извлекает I элемент из массива с использованием tuple-like интерфейса.

I должно быть целочисленным значением в диапазоне [ 0 , N ) . Это проверяется во время компиляции в отличие от at() или operator[] .

Содержание

Параметры

a - массив, содержимое которого нужно извлечь

Возвращаемое значение

Ссылка на I элемент 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 Applied to Behavior as published Correct behavior
LWG 2485 C++11 there are no overloads for const array&& the overloads are added

Смотрите также

Structured binding (C++17) связывает указанные имена с подобъектами или элементами кортежа инициализатора
доступ к указанному элементу
(public member function)
доступ к указанному элементу с проверкой границ
(public member function)
доступ к указанному элементу кортежа
(function template)
доступ к элементу pair
(function template)
читает значение варианта по индексу или типу (если тип уникален), выбрасывает исключение при ошибке
(function template)
получает итератор или страж из std::ranges::subrange
(function template)
получает ссылку на действительную или мнимую часть из std::complex
(function template)