std::pair
| Definiert in der Header-Datei <utility> |
||
| template< class T1, |
||
std::pair ist eine Klassenvorlage, die eine Möglichkeit bietet, zwei heterogene Objekte als eine Einheit zu speichern. Ein Paar ist ein Spezialfall eines std::tuple mit zwei Elementen.
Wenn weder T1 noch T2 ein potenziell cv-qualifizierter Klassentyp mit nicht-trivialem Destruktor ist, oder ein Array davon, ist der Destruktor von pair trivial.
Inhalt |
[edit] Template-Parameter
| T1, T2 | - | die Typen der Elemente, die das Paar speichert. |
[edit] Member-Typen
| Mitgliedertyp | Definition |
first_type
|
T1
|
second_type
|
T2
|
[edit] Member-Objekte
| Member-Name | Typ |
first
|
T1
|
second
|
T2
|
[edit] Member-Funktionen
konstruiert ein neues pair(öffentliche Member-Funktion) | |
| weist den Inhalt zu (öffentliche Member-Funktion) | |
| (C++11) |
tauscht die Inhalte (öffentliche Member-Funktion) |
[edit] Nicht-Member-Funktionen
erstellt ein pair-Objekt vom Typ, bestimmt durch die Argumenttypen(Funktionsvorlage) | |
| (entfernt in C++20)(entfernt in C++20)(entfernt in C++20)(entfernt in C++20)(entfernt in C++20)(C++20) |
vergleicht die Werte im pair lexikographisch(Funktionsvorlage) |
| (C++11) |
spezialisiert den Algorithmus std::swap (Funktionsvorlage) |
| (C++11) |
greift auf ein Element eines pair zu(Funktionsvorlage) |
[edit] Hilfsklassen
| (C++11) |
ermittelt die Größe eines pair(Klassenvorlagenspezialisierung) |
ermittelt den Typ der Elemente von pair(Klassenvorlagenspezialisierung) | |
ermittelt den gemeinsamen Referenztyp von zwei pairs(Klassenvorlagenspezialisierung) | |
| (C++23) |
ermittelt den gemeinsamen Typ von zwei pairs(Klassenvorlagenspezialisierung) |
| (C++23) |
Formatierungsunterstützung für pair(Klassenvorlagenspezialisierung) |
[edit] Hilfsspezialisierungen
| template< class T, class U > constexpr bool enable_nonlocking_formatter_optimization<std::pair<T, U>> = |
(seit C++23) | |
Diese Spezialisierung von std::enable_nonlocking_formatter_optimization ermöglicht eine effiziente Implementierung von std::print und std::println zum Drucken eines pair-Objekts, wenn sowohl T als auch U dies ermöglichen.
[edit] Deduktionshilfen(seit C++17)
[edit] Defect reports
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 2796 | C++98 | Trivialität des Destruktors von pair war nicht spezifiziert |
spezifiziert |
[edit] Siehe auch
| (C++11) |
implementiert einen Container fester Größe, der Elemente von möglicherweise unterschiedlichen Typen enthält (Klassenvorlage) |
| (C++11) |
erstellt ein tuple von Lvalue-Referenzen oder entpackt ein Tupel in einzelne Objekte (Funktionsvorlage) |