===== QPair ===== La classe QPair est une classe template qui sert à stocker une paire d'éléments. [[#Description détaillée|Plus d'informations...]] ==== Description détaillée ==== La classe QPair est une classe patron qui sert à stocker une paire d'éléments. QPair peut être utilisée dans vos applications si la classe ''std::pair'' de la STL n'est pas disponible. Elle stocke une valeur de type T1 et une valeur de type T2. Elle peut être utilisée en tant que valeur de retour d'une fonction devant renvoyer deux valeurs ou en tant que type de valeur d'un [[containers|conteneur générique]]. Voici un exemple d'une QPair stockant une [[QString]] et un ''double'' : QPair pair; Les composantes sont accessibles grâce aux attributs publics nommés [[#first-var|first]] (premier élément) et [[#second-var|second]] (second élément). Par exemple : pair.first = "pi"; pair.second = 3.14159265358979323846; Les types de données patron de QPair (T1 et T2) doivent être des [[containers#assignable-data-types|types de données assignables]]. Vous ne pouvez pas, par exemple, stocker un [[QWidget]] en tant que valeur ; utilisez [[QWidget]] * à la place. Quelques fonctions membres ont encore d'autres exigences ; ces exigences sont précisées pour chaque fonction. Voir aussi [[containers|Conteneurs génériques]]. ==== Types==== === first_type-typedef === ''typedef QPair::first_type'' Le type du premier élément de la paire (T1). Voir aussi [[#first-var|first]]. === second_type-typedef === ''typedef QPair::second_type'' Le type du second élément de la paire (T2). Voir aussi [[#second-var|second]]. ==== Fonctions membres ==== === QPair() === ''QPair::QPair()'' Construit une paire vide. Les éléments ''first'' et ''second'' sont initialisés avec des [[containers#default-constructed-values|valeurs de construction par défaut]]. === QPair() === ''QPair::QPair(const T1 & value1, const T2 & value2)'' Construit une paire et initialise l'élément ''first'' avec ''value1'' et l'élément ''second'' avec ''value2''. Voir aussi [[#qMakePair()]]. === operator=() === ''QPair & QPair::operator= (const QPair & other)'' Assigne ''other'' à la paire. ==== Attributs ==== === first-var === ''T1 QPair::first'' Le premier élément de la paire. === second-var === ''T2 QPair::second'' Le second élément de la paire. ==== En relation mais non membres de la classe ==== === qMakePair() === ''QPair qMakePair ( const T1 & value1, const T2 & value2 )'' Retourne un [[QPair]] contenant ''value1'' et ''value2''. Exemple : QList > liste; liste.append(qMakePair(66, 3.14159)); Ceci est équivalent à [[QPair]](''value1'', ''value2''), mais nécessite moins de code. === operator!=() === ''bool operator!= ( const QPair & p1, const QPair & p2 )'' Renvoie ''true'' si ''p1'' est différent de ''p2'' ; sinon renvoie false. Deux paires ne sont pas égales si leurs éléments respectifs ''first'' ou ''second'' ne sont pas égaux. Cette fonction nécessite une implémentation de ''operator==()'' pour T1 et T2. === operator<() === ''bool operator< ( const QPair & p1, const QPair & p2 )'' Renvoie ''true'' si ''p1'' est inférieur à ''p2'' ; sinon renvoie false. Cette comparaison est effectuée entre les attributs ''first'' de ''p1'' et ''p2'' ; s'ils sont égaux, les attributs ''second'' seront comparés pour trancher. Cette fonction nécessite une implémentation de ''operator<()'' pour T1 et T2. === operator<<() === ''[[QDataStream]] & operator<< ( [[QDataStream]] & out, const QPair & pair )'' Ecrit la paire ''pair'' dans le flux ''out''. Cette fonction nécessite une implémentation de ''operator<<()'' pour T1 et T2. Voir aussi [[datastreamformat|Format des opérateurs de QDataStream]]. === operator<=() === ''bool operator<= ( const QPair & p1, const QPair & p2 )'' Renvoie ''true'' si ''p1'' est inférieur ou égal à ''p2'' ; sinon renvoie false. La comparaison est effectuée entre les attributs ''first'' de ''p1'' et ''p2'' ; s'ils sont égaux, les attributs ''second'' seront comparés pour trancher. Cette fonction nécessite une implémentation de ''operator<()'' pour T1 et T1. === operator==() === ''bool operator== ( const QPair & p1, const QPair & p2 )'' Renvoie ''true'' si ''p1'' est égal à ''p2'' ; sinon renvoie false. Deux paires sont égales si leurs attributs respectifs ''first'' et ''second'' sont égaux. Cette fonction nécessite une implémentation de ''operator==()'' pour T1 et T2. === operator>() === ''bool operator> ( const QPair & p1, const QPair & p2 )'' Renvoie ''true'' si ''p1'' est supérieur à ''p2'' ; sinon renvoie false. La comparaison est effectuée entre les attributs ''first'' de ''p1'' et ''p2'' ; s'ils sont égaux, leur attribut ''second'' est comparé pour trancher. Cette fonction nécessite une implémentation de ''operator<()'' pour T1 et T2. === operator>=() === ''bool operator>= ( const QPair & p1, const QPair & p2 )'' Renvoie ''true'' si ''p1'' est supérieur ou égal à ''p2'' ; sinon renvoie false. La comparaison est effectuée entre les attributs ''first'' de ''p1'' et ''p2'' ; s'ils sont égaux, leur attribut ''second'' est comparé pour trancher. Cette fonction nécessite une implémentation de ''operator<()'' pour T1 et T2. === operator>>() === ''[[QDataStream]] & operator>> ( [[QDataStream]] & in, QPair & pair )'' Ecrit une paire dans ''pair'' à partir du flux ''in''. Cette fonction nécessite une implémentation de ''operator>>()'' pour T1 et T2. Voir aussi [[datastreamformat|Format des opérateurs de QDataStream]]. ==== Remerciements ==== Merci à Olivier Strebler pour la traduction et à ainsi qu'à pour leur relecture !