Pāris tiek izmantots, lai apvienotu divas vērtības, kurām var būt dažādi datu tipi. Pāris nodrošina veidu, kā uzglabāt divus neviendabīgus objektus kā vienu vienību. To pamatā izmanto, ja mēs vēlamies saglabāt korešus. Pāra konteiners ir vienkāršs konteiners, kas definēts galvene, kas sastāv no diviem datu elementiem vai objektiem.
- Pirmais elements tiek apzīmēts kā “pirmais” un otrais elements kā “otrais”, un secība ir fiksēta (pirmais, otrais).
- Pāri var piešķirt, kopēt un salīdzināt. Objektu masīvs, kas piešķirts a karte vai hash_map pēc noklusējuma ir tips “pair”, kurā visi “pirmie” elementi ir unikālas atslēgas, kas saistītas ar to “otrās” vērtības objektiem.
- Lai piekļūtu elementiem, mēs izmantojam mainīgā nosaukumu, kam seko punkta operators, kam seko atslēgvārds pirmais vai otrais.
Sintakse:
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;> }> |
>
>Izvade
100 G>
Pāra inicializācija: Mēs varam arī inicializēt pāri.
Sintakse:
pair Pair_name (value1, value2) ;>
Dažādi veidi, kā inicializēt pāri:
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>
Vēl viens veids, kā inicializēt pāri, ir izmantot funkciju make_pair().
g2 = make_pair(1, 'a');>
Vēl viena derīga sintakse pāra deklarēšanai ir:
g2 = {1, 'a'};> CPP
neobjektivitāte un dispersija
// 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; }> |
>
fon Neimaņa arhitektūra
>Izvade
GeeksForGeeks 1.23>
Piezīme: Ja tā nav inicializēta, pāra pirmā vērtība tiek automātiski inicializēta.
C++
// CPP program to illustrate> // auto-initializing of pair STL> #include> #include> using> namespace> std;> int> main()> {> >pair<>int>,>double>>PAIR1;> >pairchar>PAIR2; // tas ir inicializēts uz 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; }> |
>
>
Izvade:
00>
Dalībnieku funkcijas
1) make_pair() : šī veidnes funkcija ļauj izveidot vērtību pāri, nepārrakstot tipus.
Sintakse:
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.first = 100; PAIR1.second = 'G'; PAIR3 = make_pair ('GeeksForGeeks ir labākais', 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; }> |
>
>Izvade
100 G GeeksForGeeks 1.23 GeeksForGeeks is Best 4.56>
2) maiņa: Šī funkcija apmaina viena pāra objekta saturu ar cita pāra objekta saturu. Pāriem jābūt viena veida.
Sintakse:
string.contains java
pair1.swap(pair2) ;>
Diviem dotiem pāriem, piemēram, pair1 un pair2 viena veida, mijmaiņas funkcija apmainīs pair1.first ar pair2.first un pair1.second ar pair2.second.
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;> }> |
>
>Izvade
Before swapping: Contents of pair1 = A 1Contents of pair2 = B 2 After swapping: Contents of pair1 = B 2Contents of pair2 = A 1>
3) neizšķirts(): Šī funkcija darbojas tāpat kā korteži . Tas saviem argumentiem izveido lvvērtību atsauču virkni, t.i., lai izpakotu kortedža (vai šeit pāra) vērtības atsevišķos mainīgajos. Tāpat kā kortežās, arī šeit ir divi kaklasaites varianti ar un bez ignorēšanas. ignore atslēgvārds ignorē konkrēta kortedža elementa izsaiņošanu.
Tomēr kortežām var būt vairāki argumenti, bet pāriem ir tikai divi argumenti. Tātad, ja ir pāri, izpakošana ir skaidri jārīkojas.
Sintakse:
tie(int &, int &) = pair1;>
CPP
// CPP code to illustrate tie() in Pair> #include> using> namespace> std;> // Driver Code> int> main()> {> >pair<>int>,>int>>pair1 = { 1, 2 };> >int> a, b;> >tie(a, b) = pair1;> >cout << a <<>' '> << b <<>'
'>;> >pair<>int>,>int>>pair2 = {3, 4};> >tie(a, ignore) = pair2;> >// prints old value of b> >cout << a <<>' '> << b <<>'
'>;> >// Illustrating pair of pairs> >pair<>int>, pair<>int>,>char>>> pair3 = { 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.> |
>
>Izvade
1 2 3 2 3 4 a>
Kods, lai ilustrētu funkcijas pārī:
CPP
// CPP program to illustrate pair in STL> #include> #include> #include> using> namespace> std;> int> main()> {> >pairint>g1; pairint> g2('Viktorīna', 3); pāris> g3(g2); pāri |
>
>Izvade
dinamiskais masīvs java
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>
Laika sarežģītība: O(1).
Palīgtelpa: O(1).
operatori (=, ==, !=,>=, <=) pārī
Mēs varam izmantot arī operatorus ar pāriem.
1) izmantojot vienāds(=): Tā piešķir jaunu objektu pāra objektam. Sintakse:
pair& operator= (const pair& pr);>
Tas piešķir pr kā jauno saturu pāra objektam. Pirmajai vērtībai tiek piešķirta pr pirmā vērtība, bet otrajai vērtībai tiek piešķirta pr otrā vērtība.
2) Salīdzinājums (==) operators ar pāri: Diviem norādītajiem pāriem, piemēram, pair1 un pair2, salīdzināšanas operators salīdzina šo divu pāru pirmo vērtību un otro vērtību, t.i., ja pair1.first ir vienāds ar pair2.first vai nav un ja pair1.second ir vienāds ar pair2.second vai nav. .
t.i., ja ( (pari1.first ==pair2.first) && (pair1.second==pair2.second) )
Ja kāds no diviem nosacījumiem ir nepatiess, tas atgriež nepatiesu, pretējā gadījumā patiess.
3) Nevienāds (!=) operators ar pāri: Dotajiem diviem pāriem, piemēram, pair1 un pair2, operators != salīdzina šo divu pāru pirmās vērtības, t.i., ja pair1.first ir vienāds ar pair2.first vai nav, ja tie ir vienādi, tas pārbauda abu otrās vērtības.
4) Loģiskie(>=, <= )operatori ar pāri: Dotajiem diviem pāriem sakiet pair1 un pair2, =,>, var izmantot arī ar pāriem. Tas atgriež 0 vai 1, salīdzinot tikai pirmo pāra vērtību. Tādiem pāriem kā p1=(1,20) un p2=(1,10) p2
&list=PLqM7alHXFySGg6GSRME2INI4k8fPH5qVB