La parella s'utilitza per combinar dos valors que poden ser de diferents tipus de dades. La parella proporciona una manera d'emmagatzemar dos objectes heterogenis com una sola unitat. S'utilitza bàsicament si volem emmagatzemar tuples. El contenidor de parella és un contenidor simple definit a capçalera que consta de dos elements o objectes de dades.
- El primer element es fa referència com a 'primer' i el segon element com a 'segon' i l'ordre és fix (primer, segon).
- La parella es pot assignar, copiar i comparar. La matriu d'objectes assignats en a mapa o hash_map és de tipus 'parell' per defecte en què tots els 'primers' elements són claus úniques associades amb els seus objectes de 'segon' valor.
- Per accedir als elements, utilitzem el nom de la variable seguit de l'operador de punt seguit de la paraula clau primer o segon.
Sintaxi:
pair Pair_name>
CPP
// CPP program to illustrate Pair in STL> #include> #include> using> namespace> std;> // Driver Code> int> main()> {> >// defining a pair> >pair<>int>,>char>>PAIR1;> >// 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;> }> |
>
>Sortida
100 G>
Inicialització d'una parella: També podem inicialitzar un parell.
Sintaxi:
pair Pair_name (value1, value2) ;>
Diferents maneres d'iniciar la parella:
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>
Una altra manera d'iniciar un parell és utilitzant la funció make_pair().
g2 = make_pair(1, 'a');>
Una altra sintaxi vàlida per declarar parell és:
g2 = {1, 'a'};> CPP
biaix i variància
// 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; }> |
>
>Sortida
GeeksForGeeks 1.23>
Nota: Si no s'inicialitza, el primer valor de la parella s'inicialitza automàticament.
C++
arquitectura de von neumann
// CPP program to illustrate> // auto-initializing of pair STL> #include> #include> using> namespace> std;> int> main()> {> >pair<>int>,>double>>PAIR1;> >pairchar>PAIR2; // s'ha inicialitzat a 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; }> |
>
>
Sortida:
00>
Funcions dels membres
1) make_pair() : Aquesta funció de plantilla permet crear un parell de valors sense escriure els tipus de manera explícita.
Sintaxi:
Pair_name = make_pair (value1,value2);>
CPP
// CPP Program to demonstrate make_pair()> // function in pair> #include> #include> using> namespace> std;> // Driver Code> int> main()> {> >pair<>int>,>char>>PAIR1;> >pairdouble>PAIR2('GeeksForGeeks', 1.23); pairdouble> PAIR3; PAIR1.primer = 100; PAIR1.segon = 'G'; PAIR3 = make_pair('GeeksForGeeks és el millor', 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; }> |
>
>Sortida
100 G GeeksForGeeks 1.23 GeeksForGeeks is Best 4.56>
2) intercanviar: Aquesta funció intercanvia el contingut d'un objecte parell amb el contingut d'un altre objecte parell. Les parelles han de ser del mateix tipus.
Sintaxi:
si més, bucle a java
pair1.swap(pair2) ;>
Per a dos parells donats, diguem parell1 i parell2 del mateix tipus, la funció d'intercanvi canviarà parell1.primer amb par2.primer i parell1.segon amb par2.segon.
CPP
// CPP Program to demonstrate swap()> // function in pair> #include> #include> using> namespace> std;> // Driver Code> int> main()> {> >pair<>char>,>int>>pair1 = make_pair(>'A'>, 1);> >pair<>char>,>int>>pair2 = 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;> }> |
>
>Sortida
Before swapping: Contents of pair1 = A 1Contents of pair2 = B 2 After swapping: Contents of pair1 = B 2Contents of pair2 = A 1>
3) corbata (): Aquesta funció funciona igual que a tuples . Crea una tupla de referències lvalue als seus arguments, és a dir, per descomprimir els valors de la tupla (o aquí parell) en variables separades. Igual que a les tuples, aquí també hi ha dues variants de l'empat, amb i sense ignorar. ignora la paraula clau ignora un element de tupla particular perquè es desempaqueti.
Tanmateix, les tuples poden tenir diversos arguments, però els parells només tenen dos arguments. Per tant, en el cas d'un parell de parells, el desembalatge s'ha de gestionar de manera explícita.
Sintaxi:
tie(int &, int &) = pair1;>
CPP
// CPP code to illustrate tie() in Pair> #include> using> namespace> std;> // Driver Code> int> main()> {> >pair<>int>,>int>>parell1 = { 1, 2 };> >int> a, b;> >tie(a, b) = pair1;> >cout << a <<>' '> << b <<>'
'>;> >pair<>int>,>int>>parell2 = { 3, 4 };> >tie(a, ignore) = pair2;> >// prints old value of b> >cout << a <<>' '> << b <<>'
'>;> >// Illustrating pair of pairs> >pair<>int>, pair<>int>,>char>>> parell3 = { 3, { 4,>>> } };> >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.> |
>
>Sortida
1 2 3 2 3 4 a>
Codi per il·lustrar les funcions en parella:
CPP
// CPP program to illustrate pair in STL> #include> #include> #include> using> namespace> std;> int> main()> {> >pairint>g1; pairint> g2('Quiz', 3); pairint> g3(g2); parella |
>
>Sortida
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>
Complexitat temporal: O(1).
Espai auxiliar: O(1).
operadors (=, ==, !=,>=, <=) en parella
També podem utilitzar operadors amb parells.
1) utilitzant igual(=): Assigna un objecte nou per a un objecte parell. Sintaxi:
pair& operator= (const pair& pr);>
Això Assigna pr com a contingut nou per a l'objecte parell. Al primer valor se li assigna el primer valor de pr i al segon valor se li assigna el segon valor de pr.
powershell inferior o igual a
2) Operador de comparació (==) amb parell: Per als dos parells donats, diguem parell1 i parell2, l'operador de comparació compara el primer valor i el segon valor d'aquests dos parells, és a dir, si pair1.first és igual a pair2.first o no i si pair1.second és igual a pair2.second o no. .
és a dir, si ((pari1.first ==pair2.first) && (pair1.second==pair2.segon) )
Si alguna de les dues condicions és falsa, retorna false en cas contrari és cert.
3) Operador no igual (!=) amb parell: Per als dos parells donats, diguem parell1 i parell2, l'operador != compara els primers valors d'aquests dos parells, és a dir, si pair1.first és igual a pair2.first o no, si són iguals, comprova els segons valors de tots dos.
4) Operadors lògics (>=, <=) amb parell: Per als dos parells donats, diguem parell1 i parell2, el =,>, també es pot utilitzar amb parells. Retorna 0 o 1 només comparant el primer valor de la parella. Per a parelles com p1=(1,20) i p2=(1,10) p2
&list=PLqM7alHXFySGg6GSRmE2INI4k8fPH5qVB