Namensräume
Varianten
Aktionen

std::pair

Von cppreference.com
< cpp‎ | utility
 
 
Dienstprogramm-Bibliotheken
Sprachunterstützung
Typunterstützung (Basistypen, RTTI)
Bibliotheks-Feature-Test-Makros (C++20)
Programm-Dienstprogramme
Variadische Funktionen
Coroutine-Unterstützung (C++20)
Vertragsunterstützung (C++26)
Drei-Wege-Vergleich
(C++20)
(C++20)(C++20)(C++20)  
(C++20)(C++20)(C++20)

Allgemeine Hilfsmittel
Relationale Operatoren (in C++20 veraltet)
Ganzzahl-Vergleichsfunktionen
(C++20)(C++20)(C++20)  
(C++20)
Swap und Typ-Operationen
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Gemeinsame Vokabulartypen
pair
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)



 
 
Definiert in der Header-Datei <utility>
template<

    class T1,
    class T2

> struct pair;

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) [edit]
weist den Inhalt zu
(öffentliche Member-Funktion) [edit]
(C++11)
tauscht die Inhalte
(öffentliche Member-Funktion) [edit]

[edit] Nicht-Member-Funktionen

erstellt ein pair-Objekt vom Typ, bestimmt durch die Argumenttypen
(Funktionsvorlage) [edit]
(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) [edit]
spezialisiert den Algorithmus std::swap
(Funktionsvorlage) [edit]
greift auf ein Element eines pair zu
(Funktionsvorlage) [edit]

[edit] Hilfsklassen

ermittelt die Größe eines pair
(Klassenvorlagenspezialisierung) [edit]
ermittelt den Typ der Elemente von pair
(Klassenvorlagenspezialisierung) [edit]
ermittelt den gemeinsamen Referenztyp von zwei pairs
(Klassenvorlagenspezialisierung) [edit]
ermittelt den gemeinsamen Typ von zwei pairs
(Klassenvorlagenspezialisierung) [edit]
Formatierungsunterstützung für pair
(Klassenvorlagenspezialisierung) [edit]

[edit] Hilfsspezialisierungen

template< class T, class U >

constexpr bool enable_nonlocking_formatter_optimization<std::pair<T, U>> =
    enable_nonlocking_formatter_optimization<T> &&

    enable_nonlocking_formatter_optimization<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) [edit]
(C++11)
erstellt ein tuple von Lvalue-Referenzen oder entpackt ein Tupel in einzelne Objekte
(Funktionsvorlage) [edit]