Namespaces
Variants

std:: pair

From cppreference.net
Utilities library
Definiert im Header <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 spezieller Fall eines std::tuple mit zwei Elementen.

Wenn weder T1 noch T2 ein möglicherweise cv-qualifizierter Klassentyp mit nicht-trivialem Destruktor oder ein Array davon ist, ist der Destruktor von pair trivial.

Inhaltsverzeichnis

Template-Parameter

T1, T2 - die Typen der Elemente, die das Paar speichert.

Mitgliedertypen

Mitgliedstyp Definition
first_type T1
second_type T2

Member-Objekte

Mitgliedsname Typ
first T1
second T2

Memberfunktionen

konstruiert neues pair
(öffentliche Elementfunktion)
weist Inhalte zu
(öffentliche Elementfunktion)
(C++11)
tauscht Inhalte aus
(öffentliche Elementfunktion)

Nicht-Member-Funktionen

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

Hilfsklassen

ermittelt die Größe eines pair
(Klassen-Template-Spezialisierung)
ermittelt den Typ der Elemente von pair
(Klassen-Template-Spezialisierung)
bestimmt den gemeinsamen Referenztyp zweier pair s
(Klassen-Template-Spezialisierung)
bestimmt den gemeinsamen Typ zweier pair s
(Klassen-Template-Spezialisierung)
Formatierungsunterstützung für pair
(Klassen-Template-Spezialisierung)

Helfer-Spezialisierungen

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 für die Ausgabe eines pair -Objekts, wenn sowohl T als auch U dies ermöglichen.

Deduktionsleitfäden (seit C++17)

Fehlerberichte

Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.

DR Angewendet auf Verhalten wie veröffentlicht Korrektes Verhalten
LWG 2796 C++98 Trivialität des Destruktors von pair war nicht spezifiziert spezifiziert

Siehe auch

(C++11)
implementiert einen Container fester Größe, der Elemente möglicherweise unterschiedlicher Typen enthält
(Klassentemplate)
(C++11)
erstellt ein tuple aus Lvalue-Referenzen oder entpackt ein tuple in einzelne Objekte
(Funktionstemplate)