(C++17) | ||||
| Sequence | ||||
(C++11) | ||||
(C++26) | ||||
(C++26) | ||||
(C++11) | ||||
| Associative | ||||
| Unordered associative | ||||
(C++11) | ||||
(C++11) | ||||
(C++11) | ||||
(C++11) | ||||
| Adaptors | ||||
(C++23) | ||||
(C++23) | ||||
(C++23) | ||||
(C++23) | ||||
| Views | ||||
(C++20) | ||||
(C++23) | ||||
| Tables | ||||
| Iterator invalidation | ||||
| Member function table | ||||
| Non-member function table |
| Member types | ||||||||||||||||||||||||||
| Member functions | ||||||||||||||||||||||||||
| Non-member functions | ||||||||||||||||||||||||||
|
| |||||||||||||||||||||||||
| Helper classes | ||||||||||||||||||||||||||
| Deduction guides(C++17) | ||||||||||||||||||||||||||
Defined in header <array> | ||
template<std::size_t I,class T,std::size_t N> T& get(std::array<T,N>& a)noexcept; | (1) | (since C++11) (constexpr since C++14) |
template<std::size_t I,class T,std::size_t N> T&& get(std::array<T,N>&& a)noexcept; | (2) | (since C++11) (constexpr since C++14) |
template<std::size_t I,class T,std::size_t N> const T& get(conststd::array<T,N>& a)noexcept; | (3) | (since C++11) (constexpr since C++14) |
template<std::size_t I,class T,std::size_t N> const T&& get(conststd::array<T,N>&& a)noexcept; | (4) | (since C++11) (constexpr since C++14) |
Extracts theIth element from the array usingtuple-like interface.
I must be an integer value in range[0, N). This is enforced at compile time as opposed toat() oroperator[].
Contents |
| a | - | array whose contents to extract |
A reference to theIth element ofa.
Constant.
#include <array>#include <iostream> constexprstd::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; // set values: get<0>(a)=1, get<1>(a)=2, get<2>(a)=3; // get values:std::cout<<'('<< get<0>(a)<<','<< get<1>(a)<<','<< get<2>(a)<<")\n";}
Output:
(1,2,3)
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
| 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) | binds the specified names to sub-objects or tuple elements of the initializer[edit] |
| access specified element (public member function)[edit] | |
| access specified element with bounds checking (public member function)[edit] | |
(C++11) | tuple accesses specified element (function template)[edit] |
(C++11) | accesses an element of apair(function template)[edit] |
(C++17) | reads the value of the variant given the index or the type (if the type is unique), throws on error (function template)[edit] |
(C++20) | obtains iterator or sentinel from astd::ranges::subrange (function template)[edit] |
(C++26) | obtains a reference to real or imaginary part from astd::complex (function template)[edit] |