std::get(std::array)
Von cppreference.com
| Definiert in der Header-Datei <array> |
||
| template< std::size_t I, class T, std::size_t N > T& get( std::array<T,N>& a ) noexcept; |
(1) | (seit C++11) (constexpr seit C++14) |
| template< std::size_t I, class T, std::size_t N > T&& get( std::array<T,N>&& a ) noexcept; |
(2) | (seit C++11) (constexpr seit C++14) |
| template< std::size_t I, class T, std::size_t N > const T& get( const std::array<T,N>& a ) noexcept; |
(3) | (seit C++11) (constexpr seit C++14) |
| template< std::size_t I, class T, std::size_t N > const T&& get( const std::array<T,N>&& a ) noexcept; |
(4) | (seit C++11) (constexpr seit C++14) |
Extrahiert das I-te Element aus dem Array mittels Tuple-ähnlicher Schnittstelle.
I muss ein ganzzahliger Wert im Bereich [0, N) sein. Dies wird zur Kompilierzeit erzwungen, im Gegensatz zu at() oder operator[].
Inhalt |
[bearbeiten] Parameter
| a | - | Array, dessen Inhalt extrahiert werden soll |
[bearbeiten] Rückgabewert
Eine Referenz auf das I-te Element von a.
[bearbeiten] Komplexität
Konstant.
[bearbeiten] Beispiel
Führen Sie diesen Code aus
#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; // 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"; }
Ausgabe
(1,2,3)
[bearbeiten] Fehlerberichte
Die folgenden Verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | angewendet auf | Verhalten wie veröffentlicht | Korrigiertes Verhalten |
|---|---|---|---|
| LWG 2485 | C++11 | es gibt keine Überladungen für const array&& | die Überladungen werden hinzugefügt |
[bearbeiten] Siehe auch
| Strukturierte Bindung (C++17) | bindet die angegebenen Namen an Unterobjekte oder Tuple-Elemente des Initialisierers |
| Greift auf ein bestimmtes Element zu (public member function) | |
| Greift mit Überprüfung auf ein bestimmtes Element zu (public member function) | |
| (C++11) |
greift auf ein Tupel-Element gemäß Spezifikation zu (function template) |
| (C++11) |
greift auf ein Element eines pair zu(Funktionsvorlage) |
| (C++17) |
liest den Wert des variants anhand des Index oder des Typs (wenn der Typ eindeutig ist), wirft bei Fehler (function template) |
| (C++20) |
erhält Iterator oder Sentinel von einem std::ranges::subrange (Funktionsvorlage) |
| (C++26) |
erhält eine Referenz auf den realen oder imaginären Teil von std::complex (function template) |