Par se uporablja za združevanje dveh vrednosti, ki sta lahko različnih tipov podatkov. Pair omogoča shranjevanje dveh heterogenih predmetov kot ene enote. V bistvu se uporablja, če želimo shraniti tuple. Parni vsebnik je preprost vsebnik, definiran v glava, sestavljena iz dveh podatkovnih elementov ali objektov.
- Prvi element je označen kot 'prvi', drugi element pa kot 'drugi', vrstni red pa je fiksen (prvi, drugi).
- Par je mogoče dodeliti, kopirati in primerjati. Matrika predmetov, dodeljenih v a zemljevid ali hash_map je privzeto tipa 'par', v katerem so vsi 'prvi' elementi edinstveni ključi, povezani z njihovimi objekti 'druge' vrednosti.
- Za dostop do elementov uporabimo ime spremenljivke, ki mu sledi operator pike, ki mu sledi ključna beseda first ali second.
Sintaksa:
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> >PAR1;> > // 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;> }> |
>
>Izhod
100 G>
Inicializacija para: Lahko tudi inicializiramo par.
Sintaksa:
pair Pair_name (value1, value2) ;>
Različni načini inicializacije para:
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>
Drug način inicializacije para je uporaba funkcije make_pair().
g2 = make_pair(1, 'a');>
Druga veljavna sintaksa za deklaracijo para je:
g2 = {1, 'a'};>
CPP
definirati računalnik
// 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; }> |
>
>Izhod
GeeksForGeeks 1.23>
Opomba: Če ni inicializiran, se prva vrednost para samodejno inicializira.
C++
// CPP program to illustrate> // auto-initializing of pair STL> #include> #include> using> namespace> std;> int> main()> {> > pair<> int> ,> double> >PAR1;> > pairchar>PAIR2; // je inicializiran na 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; }> |
>
>
Izhod:
00>
Članske funkcije
1) make_pair() : Ta funkcija predloge omogoča ustvarjanje para vrednosti brez izrecnega pisanja vrst.
Sintaksa:
Pair_name = make_pair (value1,value2);>
CPP
primerek
// CPP Program to demonstrate make_pair()> // function in pair> #include> #include> using> namespace> std;> // Driver Code> int> main()> {> > pair<> int> ,> char> >PAR1;> > pairdouble>PAIR2('GeeksForGeeks', 1.23); pairdouble> PAIR3; PAR1.prvi = 100; PAIR1.second = 'G'; PAIR3 = make_pair('GeeksForGeeks je najboljši', 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; }> |
>
>Izhod
100 G GeeksForGeeks 1.23 GeeksForGeeks is Best 4.56>
2) zamenjava: Ta funkcija zamenja vsebino enega para objekta z vsebino drugega para objekta. Pari morajo biti iste vrste.
Sintaksa:
if else zanka v Javi
pair1.swap(pair2) ;>
Za dva podana para, recimo pair1 in pair2 iste vrste, bo funkcija zamenjave zamenjala pair1.first s pair2.first in pair1.second s pair2.second.
CPP
// CPP Program to demonstrate swap()> // function in pair> #include> #include> using> namespace> std;> // Driver Code> int> main()> {> > pair<> char> ,> int> >par1 = make_pair(> 'A'> , 1);> > pair<> char> ,> int> >par2 = 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;> }> |
>
>Izhod
Before swapping: Contents of pair1 = A 1Contents of pair2 = B 2 After swapping: Contents of pair1 = B 2Contents of pair2 = A 1>
3) kravata (): Ta funkcija deluje enako kot v tuples . Ustvari torko referenc lvalue na svoje argumente, tj. za razpakiranje vrednosti tuple (ali tukaj para) v ločene spremenljivke. Tako kot v tupleh sta tudi tukaj dve varianti kravate, z ignorjem in brez njega. ignore ključna beseda prezre določen element tuple pred razpakiranjem.
Vendar imajo lahko tuple več argumentov, pari pa imajo samo dva argumenta. Torej je treba v primeru para parov razpakiranje izrecno obravnavati.
Sintaksa:
tie(int &, int &) = pair1;>
CPP
// CPP code to illustrate tie() in Pair> #include> using> namespace> std;> // Driver Code> int> main()> {> > pair<> int> ,> int> >par1 = { 1, 2 };> > int> a, b;> > tie(a, b) = pair1;> > cout << a <<> ' '> << b <<> '
'> ;> > pair<> int> ,> int> >par2 = { 3, 4 };> > tie(a, ignore) = pair2;> > // prints old value of b> > cout << a <<> ' '> << b <<> '
'> ;> > // Illustrating pair of pairs> > pair<> int> , pair<> int> ,> char> >> par3 = { 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.> |
>
>Izhod
1 2 3 2 3 4 a>
Koda za ponazoritev funkcij v paru:
CPP
// CPP program to illustrate pair in STL> #include> #include> #include> using> namespace> std;> int> main()> {> > pairint>g1; pairint> g2('Kviz', 3); pairint> g3(g2); par |
datoteka odprta v java
>
>Izhod
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>
Časovna zahtevnost: O(1).
Pomožni prostor: O(1).
operatorji (=, ==, !=,>=, <=) v paru
Operatorje lahko uporabljamo tudi s pari.
1) z uporabo enako (=): Objektu v paru dodeli nov objekt. Sintaksa:
pair& operator= (const pair& pr);>
To dodeli pr kot novo vsebino za objekt para. Prvi vrednosti je dodeljena prva vrednost pr, drugi vrednosti pa druga vrednost pr.
2) Operator primerjave (==) s parom: Za podana para, recimo pair1 in pair2, primerjalni operator primerja prvo vrednost in drugo vrednost teh dveh parov, tj. če je pair1.first enak paru2.first ali ne in če je pair1.second enak paru2.second ali ne .
npr. if ( (pari1.first ==pair2.first) && (pair1.second==pair2.second) )
Če je kateri koli od dveh pogojev napačen, vrne false, drugače pa true.
3) Ni enako (!=) operator s parom: Za podana dva para, recimo pair1 in pair2, operator != primerja prvi vrednosti teh dveh parov, tj. če je pair1.first enak paru2.first ali ne, če sta enaki, potem preveri drugi vrednosti obeh.
4) Logični (>=, <= )operatorji s parom: Za dana dva para, recimo par1 in par2, lahko =,> uporabite tudi s pari. Vrne 0 ali 1 tako, da primerja samo prvo vrednost para. Za pare, kot sta p1=(1,20) in p2=(1,10) p2
&list=PLqM7alHXFySGg6GSRmE2INI4k8fPH5qVB