Namespaces
Variants

std:: pair

From cppreference.net
Utilities library
Défini dans l'en-tête <utility>
template <

class T1,
class T2

> struct pair ;

std::pair est un modèle de classe qui permet de stocker deux objets hétérogènes comme une seule unité. Une paire est un cas spécifique d'un std::tuple avec deux éléments.

Si ni T1 ni T2 n'est un type de classe éventuellement qualifié cv avec un destructeur non trivial, ou un tableau de ceux-ci, le destructeur de pair est trivial.

Table des matières

Paramètres du modèle

T1, T2 - les types des éléments que la paire stocke.

Types membres

Type de membre Définition
first_type T1
second_type T2

Objets membres

Nom du membre Type
first T1
second T2

Fonctions membres

construit un nouveau pair
(fonction membre publique)
assigne le contenu
(fonction membre publique)
(C++11)
échange le contenu
(fonction membre publique)

Fonctions non membres

crée un objet pair dont le type est déterminé par les types des arguments
(modèle de fonction)
(supprimé en C++20) (supprimé en C++20) (supprimé en C++20) (supprimé en C++20) (supprimé en C++20) (C++20)
compare lexicographiquement les valeurs dans la pair
(modèle de fonction)
spécialise l'algorithme std::swap
(modèle de fonction)
accède à un élément d'une pair
(modèle de fonction)

Classes d'assistance

obtient la taille d'une pair
(spécialisation de modèle de classe)
obtient le type des éléments d'une pair
(spécialisation de modèle de classe)
détermine le type de référence commun de deux pair s
(spécialisation de modèle de classe)
détermine le type commun de deux pair s
(spécialisation de modèle de classe)
support de formatage pour pair
(spécialisation de modèle de classe)

Spécialisations d'assistance

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 > ;
(depuis C++23)

Cette spécialisation de std::enable_nonlocking_formatter_optimization permet une implémentation efficace de std::print et std::println pour l'affichage d'un objet pair lorsque T et U l'activent tous deux.

Guides de déduction (depuis C++17)

Rapports de défauts

Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.

DR Appliqué à Comportement publié Comportement corrigé
LWG 2796 C++98 la trivialité du destructeur de pair n'était pas spécifiée spécifiée

Voir aussi

(C++11)
implémente un conteneur de taille fixe, qui contient des éléments de types potentiellement différents
(modèle de classe)
(C++11)
crée un tuple de références de lvalues ou décompose un tuple en objets individuels
(modèle de fonction)