Paria käytetään yhdistämään kaksi arvoa, jotka voivat olla eri tietotyyppejä. Pari tarjoaa tavan tallentaa kaksi heterogeenistä objektia yhtenä yksikkönä. Sitä käytetään periaatteessa, jos haluamme tallentaa tupleja. Parisäiliö on yksinkertainen säiliö, joka on määritelty kohdassa kahdesta tietoelementistä tai objektista koostuva otsikko.
- Ensimmäiseen elementtiin viitataan nimellä 'ensimmäinen' ja toiseen elementtiin 'toiseksi' ja järjestys on kiinteä (ensimmäinen, toinen).
- Pari voidaan määrittää, kopioida ja verrata. Kohteeseen a allokoitujen objektien joukko kartta tai hash_map on oletusarvoisesti tyyppiä 'pari', jossa kaikki 'ensimmäiset' elementit ovat yksilöllisiä avaimia, jotka liittyvät niiden 'toisiin' arvoobjekteihin.
- Elementtien käyttämiseksi käytämme muuttujan nimeä, jota seuraa pisteoperaattori ja avainsana ensin tai toiseksi.
Syntaksi:
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;> }> |
>
>Lähtö
100 G>
Parin alustaminen: Voimme myös alustaa parin.
Syntaksi:
pair Pair_name (value1, value2) ;>
Eri tapoja alustaa pari:
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>
Toinen tapa alustaa pari on käyttää make_pair()-funktiota.
g2 = make_pair(1, 'a');>
Toinen kelvollinen syntaksi parin ilmoittamiseen on:
g2 = {1, 'a'};> CPP
Näyttelijä Rakul Preet Singh
// 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; }> |
>
>Lähtö
GeeksForGeeks 1.23>
Huomautus: Jos sitä ei ole alustettu, parin ensimmäinen arvo alustetaan automaattisesti.
C++
// CPP program to illustrate> // auto-initializing of pair STL> #include> #include> using> namespace> std;> int> main()> {> >pair<>int>,>double>>PAIR1;> >pairchar>PAIR2; // se alustetaan arvoon 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; }> |
>
>
Lähtö:
linux merkki
00>
Jäsentoiminnot
1) make_pair() : Tämä mallitoiminto mahdollistaa arvoparin luomisen kirjoittamatta tyyppejä erikseen.
Syntaksi:
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; PARI1.ensimmäinen = 100; PAIR1.second = 'G'; PAIR3 = make_pair('GeeksForGeeks on paras', 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; }> |
>
>Lähtö
100 G GeeksForGeeks 1.23 GeeksForGeeks is Best 4.56>
2) vaihto: Tämä toiminto vaihtaa yhden pariobjektin sisällön toisen pariobjektin sisällön kanssa. Parien tulee olla samaa tyyppiä.
Syntaksi:
minkä kokoinen näyttöni on
pair1.swap(pair2) ;>
Kahdelle tietylle parille, esimerkiksi pari1 ja pari2, jotka ovat samaa tyyppiä, swap-toiminto vaihtaa pari1.first-parametrin pari2.ensimmäisellä ja pari1.sekundilla pari2.sekundilla.
CPP
// CPP Program to demonstrate swap()> // function in pair> #include> #include> using> namespace> std;> // Driver Code> int> main()> {> >pair<>char>,>int>>pari1 = make_pair(>'A'>, 1);> >pair<>char>,>int>>pari2 = 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;> }> |
>
>Lähtö
Before swapping: Contents of pair1 = A 1Contents of pair2 = B 2 After swapping: Contents of pair1 = B 2Contents of pair2 = A 1>
3) tasapeli(): Tämä toiminto toimii samalla tavalla kuin tuples . Se luo joukon lvvalue-viittauksia argumenttiinsa eli purkaa monikko (tai tässä parin) arvot erillisiksi muuttujiksi. Aivan kuten tupleissa, myös tässä on kaksi muunnelmaa solmiosta, huomioimatta ja ilman. ignore-avainsana ohittaa tietyn tuple-elementin purkamisen.
Monikoilla voi kuitenkin olla useita argumentteja, mutta pareilla on vain kaksi argumenttia. Joten parien tapauksessa pakkausten purkaminen on käsiteltävä erikseen.
Syntaksi:
tie(int &, int &) = pair1;>
CPP
// CPP code to illustrate tie() in Pair> #include> using> namespace> std;> // Driver Code> int> main()> {> >pair<>int>,>int>>pari1 = { 1, 2 };> >int> a, b;> >tie(a, b) = pair1;> >cout << a <<>' '> << b <<>'
'>;> >pair<>int>,>int>>pari2 = { 3, 4 };> >tie(a, ignore) = pair2;> >// prints old value of b> >cout << a <<>' '> << b <<>'
'>;> >// Illustrating pair of pairs> >pair<>int>, pair<>int>,>char>>> pari3 = { 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.> |
>
>Lähtö
1 2 3 2 3 4 a>
Koodi, joka havainnollistaa paritoimintoja:
CPP
mikä on hakemiston lähettäminen
// CPP program to illustrate pair in STL> #include> #include> #include> using> namespace> std;> int> main()> {> >pairint>g1; pari> g2('Quiz', 3); pari> g3(g2); pari |
>
>Lähtö
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>
Aika monimutkaisuus: O(1).
Aputila: O(1).
operaattorit (=, ==, !=,>=, <=) parissa
Voimme käyttää operaattoreita myös parien kanssa.
1) käyttämällä yhtälöä(=): Se määrittää uuden objektin pariobjektille. Syntaksi:
pair& operator= (const pair& pr);>
Tämä määrittää pr:n pariobjektin uudeksi sisällöksi. Ensimmäiselle arvolle annetaan pr:n ensimmäinen arvo ja toiselle arvolle annetaan pr:n toinen arvo.
2) Vertailuoperaattori (==) parin kanssa: Kahdelle annetulle parille, esimerkiksi pari1 ja pari2, vertailuoperaattori vertaa näiden kahden parin ensimmäistä arvoa ja toista arvoa, eli jos pari1.first on yhtä suuri kuin pari2.ensimmäinen vai ei ja jos pari1.second on yhtä suuri kuin pari2.sekunti vai ei .
eli jos ( (pari1.first ==pari2.first) && (pair1.second==pair2.second) )
Jos jompikumpi ehdoista on epätosi, se palauttaa epätosi, muuten tosi.
3) Ei sama (!=) operaattori parilla: Annetuille kahdelle parille, sanotaan pari1 ja pari2, !=-operaattori vertaa näiden kahden parin ensimmäisiä arvoja, eli jos pari1.first on yhtä suuri kuin pari2.first vai ei, jos ne ovat yhtä suuret, se tarkistaa molempien toiset arvot.
4) Loogiset(>=, <= )operaattorit parilla: Annetuille kahdelle parille sanotaan pari1 ja pari2, =,>, voidaan käyttää myös parien kanssa. Se palauttaa 0 tai 1 vertaamalla vain parin ensimmäistä arvoa. Pareille, kuten p1=(1,20) ja p2=(1,10) p2
&list=PLqM7alHXFySGg6GSRME2INI4k8fPH5qVB