std:: get (std::array)
|
Определено в заголовочном файле
<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) |
|
|
(C++11)
|
доступ к указанному элементу кортежа
(function template) |
|
(C++11)
|
доступ к элементу
pair
(function template) |
|
(C++17)
|
читает значение варианта по индексу или типу (если тип уникален), выбрасывает исключение при ошибке
(function template) |
|
(C++20)
|
получает итератор или страж из
std::ranges::subrange
(function template) |
|
(C++26)
|
получает ссылку на действительную или мнимую часть из
std::complex
(function template) |