logo

Paire dans la bibliothèque de modèles standard C++ (STL)

La paire est utilisée pour combiner deux valeurs qui peuvent être de types de données différents. Pair fournit un moyen de stocker deux objets hétérogènes comme une seule unité. Il est essentiellement utilisé si nous voulons stocker des tuples. Le conteneur paire est un conteneur simple défini dans en-tête composé de deux éléments de données ou objets.

  • Le premier élément est référencé comme « premier » et le deuxième élément comme « second » et l'ordre est fixe (premier, deuxième).
  • La paire peut être attribuée, copiée et comparée. Le tableau d'objets alloués dans un carte ou hash_map est de type « paire » par défaut dans lequel tous les « premiers » éléments sont des clés uniques associées à leurs « seconds » objets de valeur.
  • Pour accéder aux éléments, nous utilisons le nom de la variable suivi de l'opérateur point suivi du mot-clé first ou second.

Syntaxe:



pair Pair_name>

RPC






// CPP program to illustrate Pair in STL> #include> #include> using> namespace> std;> // Driver Code> int> main()> {> >// defining a pair> >pair<>int>,>char>>PAIRE1;> >// first part of the pair> >PAIR1.first = 100;> >// second part of the pair> >PAIR1.second =>'G'>;> >cout << PAIR1.first <<>' '>;> >cout << PAIR1.second << endl;> >return> 0;> }>



>

>

Sortir

100 G>

Initialisation d'une paire : On peut également initialiser une paire.

Syntaxe:

pair Pair_name (value1, value2) ;>

Différentes manières d'initialiser la paire :

pair g1; //default pair g2(1, 'a'); //initialized, different data type pair g3(1, 10); //initialized, same data type pair g4(g3); //copy of g3>

Une autre façon d’initialiser une paire consiste à utiliser la fonction make_pair().

g2 = make_pair(1, 'a');>

Une autre syntaxe valide pour déclarer une paire est :

g2 = {1, 'a'};>

RPC

système d'exploitation Linux




// CPP program to illustrate> // Initializing of pair STL> #include> #include> using> namespace> std;> // Driver Code> int> main()> {> >// defining a pair> >pairdouble>PAIR2('GeeksForGeeks', 1.23); cout<< PAIR2.first << ' '; cout << PAIR2.second << endl; return 0; }>

>

>

Sortir

GeeksForGeeks 1.23>

Note: Si elle n'est pas initialisée, la première valeur de la paire est automatiquement initialisée.

C++


compte mysql



// CPP program to illustrate> // auto-initializing of pair STL> #include> #include> using> namespace> std;> int> main()> {> >pair<>int>,>double>>PAIRE1;> >pairchar>PAIRE2 ; // il est initialisé à 0 cout<< PAIR1.first; // it is initialised to 0 cout << PAIR1.second; cout << ' '; // // it prints nothing i.e NULL cout << PAIR2.first; // it prints nothing i.e NULL cout << PAIR2.second; return 0; }>

>

>

Sortir:

00>

Fonctions des membres

1) make_pair() : Cette fonction modèle permet de créer une paire de valeurs sans écrire explicitement les types.
Syntaxe:

Pair_name = make_pair (value1,value2);>

RPC




// CPP Program to demonstrate make_pair()> // function in pair> #include> #include> using> namespace> std;> // Driver Code> int> main()> {> >pair<>int>,>char>>PAIRE1;> >pairdouble>PAIR2('GeeksForGeeks', 1.23); pairedouble> PAIRE3; PAIR1.premier = 100 ; PAIR1.seconde = 'G'; PAIR3 = make_pair('GeeksForGeeks est le meilleur', 4.56); cout<< PAIR1.first << ' '; cout << PAIR1.second << endl; cout << PAIR2.first << ' '; cout << PAIR2.second << endl; cout << PAIR3.first << ' '; cout << PAIR3.second << endl; return 0; }>

>

>

Sortir

100 G GeeksForGeeks 1.23 GeeksForGeeks is Best 4.56>

2) échanger : Cette fonction échange le contenu d'un objet paire avec le contenu d'un autre objet paire. Les paires doivent être du même type.
Syntaxe:

acteur shweta tiwari
pair1.swap(pair2) ;>

Pour deux paires données, par exemple paire1 et paire2 du même type, la fonction d'échange échangera paire1.premier avec paire2.premier et paire1.seconde avec paire2.seconde.

RPC




// CPP Program to demonstrate swap()> // function in pair> #include> #include> using> namespace> std;> // Driver Code> int> main()> {> >pair<>char>,>int>>paire1 = make_pair(>'A'>, 1);> >pair<>char>,>int>>paire2 = make_pair(>'B'>, 2);> >cout <<>'Before swapping: '>;> >cout <<>'Contents of pair1 = '> << pair1.first <<>' '> ><< pair1.second;> >cout <<>'Contents of pair2 = '> << pair2.first <<>' '> ><< pair2.second;> >pair1.swap(pair2);> >cout <<>' After swapping: '>;> >cout <<>'Contents of pair1 = '> << pair1.first <<>' '> ><< pair1.second;> >cout <<>'Contents of pair2 = '> << pair2.first <<>' '> ><< pair2.second;> >return> 0;> }>

>

>

Sortir

Before swapping: Contents of pair1 = A 1Contents of pair2 = B 2 After swapping: Contents of pair1 = B 2Contents of pair2 = A 1>

3) égalité() : Cette fonction fonctionne de la même manière que dans tuples . Il crée un tuple de références lvalue à ses arguments, c'est-à-dire pour décompresser les valeurs du tuple (ou ici la paire) en variables séparées. Tout comme dans les tuples, voici également deux variantes du lien, avec et sans ignorer. Le mot-clé ignore ignore un élément de tuple particulier et ne peut pas être décompressé.
Cependant, les tuples peuvent avoir plusieurs arguments, mais les paires n'en ont que deux. Ainsi, dans le cas d’une paire de paires, le déballage doit être explicitement géré.
Syntaxe:

tie(int &, int &) = pair1;>

RPC




// CPP code to illustrate tie() in Pair> #include> using> namespace> std;> // Driver Code> int> main()> {> >pair<>int>,>int>>paire1 = { 1, 2 };> >int> a, b;> >tie(a, b) = pair1;> >cout << a <<>' '> << b <<>' '>;> >pair<>int>,>int>>paire2 = { 3, 4 };> >tie(a, ignore) = pair2;> >// prints old value of b> >cout << a <<>' '> << b <<>' '>;> >// Illustrating pair of pairs> >pair<>int>, pair<>int>,>char>>> paire3 = { 3, { 4,>'a'> } };> >int> x, y;> >char> z;> >// tie(x,y,z) = pair3; Gives compilation error> >// tie(x, tie(y,z)) = pair3; Gives compilation error> >// Each pair needs to be explicitly handled> >tie(x,ignore) = pair3;> >tie(y, z) = pair3.second;> >cout << x <<>' '> << y <<>' '> << z <<>' '>;> }> // contributed by sarthak_eddy.>

>

>

Sortir

1 2 3 2 3 4 a>

Code pour illustrer les fonctions en paire :

RPC




// CPP program to illustrate pair in STL> #include> #include> #include> using> namespace> std;> int> main()> {> >pairint>g1 ; pairint> g2('Quiz', 3); paireint> g3(g2); paire g4(5, 10); g1 = make_pair(string('Geeks'), 1); g2.premier = '.com'; g2.seconde = 2 ; cout<< 'This is pair g' << g1.second << ' with ' << 'value ' << g1.first << '.' << endl << endl; cout << 'This is pair g' << g3.second << ' with value ' << g3.first << 'This pair was initialized as a copy of ' << 'pair g2' << endl << endl; cout << 'This is pair g' << g2.second << ' with value ' << g2.first << ' The values of this pair were' << ' changed after initialization.' << endl << endl; cout << 'This is pair g4 with values ' << g4.first << ' and ' << g4.second << ' made for showing addition. The ' << 'sum of the values in this pair is ' << g4.first + g4.second << '.' << endl << endl; cout << 'We can concatenate the values of' << ' the pairs g1, g2 and g3 : ' << g1.first + g3.first + g2.first << endl << endl; cout << 'We can also swap pairs ' << '(but type of pairs should be same) : ' << endl; cout << 'Before swapping, ' << 'g1 has ' << g1.first << ' and g2 has ' << g2.first << endl; swap(g1, g2); cout << 'After swapping, ' << 'g1 has ' << g1.first << ' and g2 has ' << g2.first; return 0; }>

>

>

Sortir

This is pair g1 with value Geeks. This is pair g3 with value QuizThis pair was initialized as a copy of pair g2 This is pair g2 with value .com The values of this pair were changed after initialization. This is pair g4 with values 5 and 10 made for showing addition. The sum of the values in this pair is 15. We can concatenate the values of the pairs g1, g2 and g3 : GeeksQuiz.com We can also swap pairs (but type of pairs should be same) : Before swapping, g1 has Geeks and g2 has .com After swapping, g1 has .com and g2 has Geeks>

Complexité temporelle : O(1).

Espace auxiliaire : O(1).

opérateurs (=, ==, !=,>=, <=) dans une paire

Nous pouvons également utiliser des opérateurs avec des paires.

1) en utilisant égal (=): Il attribue un nouvel objet pour un objet paire. Syntaxe:

pair& operator= (const pair& pr);>

Ceci attribue pr comme nouveau contenu pour l'objet paire. La première valeur se voit attribuer la première valeur de pr et la seconde valeur se voit attribuer la seconde valeur de pr.

2) Opérateur de comparaison (==) avec paire : Pour les deux paires données, par exemple pair1 et pair2, l'opérateur de comparaison compare la première valeur et la deuxième valeur de ces deux paires, c'est-à-dire si pair1.first est égal à pair2.first ou non et si pair1.second est égal à pair2.second ou non .

Acteur Rekha

c'est-à-dire if ( (pari1.first ==pair2.first) && (pair1.second==pair2.second) )

Si l’une des deux conditions est fausse, elle renvoie faux, sinon vrai.

3) Opérateur différent (!=) avec paire : Pour les deux paires données, par exemple pair1 et pair2, l'opérateur != compare les premières valeurs de ces deux paires, c'est-à-dire si pair1.first est égal à pair2.first ou non, si elles sont égales, il vérifie les secondes valeurs des deux.

4) Opérateurs logiques (>=, <= ) avec paire : Pour les deux paires données, disons paire1 et paire2, les =,>, peuvent également être utilisés avec des paires. Il renvoie 0 ou 1 en comparant uniquement la première valeur de la paire. Pour des paires comme p1=(1,20) et p2=(1,10) p2ou

&list=PLqM7alHXFySGg6GSRmE2INI4k8fPH5qVB