std::get(std::array)
Определено в заголовке <array> | ||
|---|---|---|
| (1) | ||
template< std::size_t I, class T, std::size_t N > T& get( std::array<T,N>& a ) noexcept; |
(с C++11) (до C++14) | |
template< std::size_t I, class T, std::size_t N > constexpr T& get( std::array<T,N>& a ) noexcept; | (с C++14) | |
| (2) | ||
template< std::size_t I, class T, std::size_t N > T&& get( std::array<T,N>&& a ) noexcept; |
(с C++11) (до C++14) | |
template< std::size_t I, class T, std::size_t N > constexpr T&& get( std::array<T,N>&& a ) noexcept; | (с C++14) | |
| (3) | ||
template< std::size_t I, class T, std::size_t N > const T& get( const std::array<T,N>& a ) noexcept; |
(с C++11) (до C++14) | |
template< std::size_t I, class T, std::size_t N > constexpr const T& get( const std::array<T,N>& a ) noexcept; | (с C++14) | |
| (4) | ||
template< std::size_t I, class T, std::size_t N > const T&& get( const std::array<T,N>&& a ) noexcept; |
(с C++11) (до C++14) | |
template< std::size_t I, class T, std::size_t N > constexpr const T&& get( const std::array<T,N>&& a ) noexcept; | (с C++14) |
Извлекает I-й элемент из массива, используя интерфейс типа кортежа.
I должно быть целым значением в диапазоне [0, N). Это проверяется на этапе компиляции, в отличие от at() или operator[].
Параметры
| a | - | массив, чьё содержимое нужно извлечь |
Возвращаемое значение
Ссылка на I-й элемент массива a.
Сложность
Постоянная.
Пример
#include <array>
#include <iostream>
int main()
{
std::array<int, 3> arr;
// set values:
std::get<0>(arr) = 1;
std::get<1>(arr) = 2;
std::get<2>(arr) = 3;
// get values:
std::cout << '(' << std::get<0>(arr)
<< ',' << std::get<1>(arr)
<< ',' << std::get<2>(arr)
<< ")\n";
}Вывод:
(1,2,3)
Отчёты об ошибках
Следующие отчёты об ошибках, изменяющие поведение, были применены ретроактивно к ранее опубликованным стандартам C++.
| DR | Применено к | Поведение, как опубликовано | Правильное поведение |
|---|---|---|---|
| LWG 2485 | C++11 | не было перегрузок для const array&& | перегрузки добавлены |
См. также
| Структурное связывание (C++17) | связывает указанные имена с подобъектами или элементами кортежа инициализатора |
| доступ к указанному элементу (публичный член-функция) |
|
| доступ к указанному элементу с проверкой границ (публичный член-функция) |
|
|
(C++11) | доступ к указанному элементу кортежа (шаблон функции) |
|
(C++11) | доступ к элементу pair (шаблон функции) |
|
(C++17) | считывает значение варианта, заданного по индексу или типу (если тип уникален), выбрасывает исключение при ошибке (шаблон функции) |
|
(C++20) | получает итератор или конечную точку поддиапазона std::ranges::subrange (шаблон функции) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/container/array/get