Paar wordt gebruikt om twee waarden met verschillende gegevenstypen te combineren. Paar biedt een manier om twee heterogene objecten als één eenheid op te slaan. Het wordt in principe gebruikt als we tupels willen opslaan. De paarcontainer is een eenvoudige container gedefinieerd in header bestaande uit twee data-elementen of objecten.
- Naar het eerste element wordt verwezen als ‘eerste’ en naar het tweede element als ‘tweede’, en de volgorde staat vast (eerste, tweede).
- Paar kunnen worden toegewezen, gekopieerd en vergeleken. De array met objecten die zijn toegewezen in a kaart of hash_map is standaard van het type ‘pair’ waarbij alle ‘eerste’ elementen unieke sleutels zijn die zijn gekoppeld aan hun ‘tweede’ waardeobjecten.
- Om toegang te krijgen tot de elementen gebruiken we de variabelenaam gevolgd door een puntoperator gevolgd door het trefwoord eerste of tweede.
Syntaxis:
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>>PAAR1;> >// 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;> }> |
>
>Uitvoer
100 G>
Een paar initialiseren: We kunnen ook een paar initialiseren.
Syntaxis:
pair Pair_name (value1, value2) ;>
Verschillende manieren om een paar te initialiseren:
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>
Een andere manier om een paar te initialiseren is door de functie make_pair() te gebruiken.
g2 = make_pair(1, 'a');>
Een andere geldige syntaxis om een paar te declareren is:
g2 = {1, 'a'};> CPP
vergelijkbaar Java
// CPP program to illustrate> // Initializing of pair STL> #include> #include> using> namespace> std;> // Driver Code> int> main()> {> >// defining a pair> >pairdouble>PAAR2('GeeksForGeeks', 1.23); uit<< PAIR2.first << ' '; cout << PAIR2.second << endl; return 0; }> |
>
>Uitvoer
GeeksForGeeks 1.23>
Opmerking: Indien niet geïnitialiseerd, wordt de eerste waarde van het paar automatisch geïnitialiseerd.
C++
// CPP program to illustrate> // auto-initializing of pair STL> #include> #include> using> namespace> std;> int> main()> {> >pair<>int>,>double>>PAAR1;> >pairchar>PAAR2; // het is geïnitialiseerd op 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; }> |
>
>
Uitgang:
00>
Functies van leden
1) make_pair() : Met deze sjabloonfunctie kunt u een waardepaar maken zonder de typen expliciet te schrijven.
Syntaxis:
Pair_name = make_pair (value1,value2);>
CPP
superscript in illustrator
// CPP Program to demonstrate make_pair()> // function in pair> #include> #include> using> namespace> std;> // Driver Code> int> main()> {> >pair<>int>,>char>>PAAR1;> >pairdouble>PAAR2('GeeksForGeeks', 1.23); paardubbel> PAAR3; PAAR1.eerste = 100; PAAR1.seconde = 'G'; PAIR3 = make_pair('GeeksForGeeks is het beste', 4.56); uit<< PAIR1.first << ' '; cout << PAIR1.second << endl; cout << PAIR2.first << ' '; cout << PAIR2.second << endl; cout << PAIR3.first << ' '; cout << PAIR3.second << endl; return 0; }> |
>
>Uitvoer
100 G GeeksForGeeks 1.23 GeeksForGeeks is Best 4.56>
2) ruilen: Deze functie verwisselt de inhoud van een paarobject met de inhoud van een ander paarobject. De paren moeten van hetzelfde type zijn.
Syntaxis:
rj12 versus rj11
pair1.swap(pair2) ;>
Voor twee gegeven paren, bijvoorbeeld paar1 en paar2 van hetzelfde type, zal de wisselfunctie paar1.eerste omwisselen met paar2.eerste en paar1.seconde met paar2.seconde.
CPP
// CPP Program to demonstrate swap()> // function in pair> #include> #include> using> namespace> std;> // Driver Code> int> main()> {> >pair<>char>,>int>>paar1 = maak_paar(>'A'>, 1);> >pair<>char>,>int>>paar2 = maak_paar(>'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;> }> |
>
>Uitvoer
Before swapping: Contents of pair1 = A 1Contents of pair2 = B 2 After swapping: Contents of pair1 = B 2Contents of pair2 = A 1>
3) gelijkspel(): Deze functie werkt hetzelfde als in tupels . Het creëert een tupel van lvalue-referenties naar zijn argumenten, dat wil zeggen om de tupel (of hier paar) waarden uit te pakken in afzonderlijke variabelen. Net als bij tupels zijn ook hier twee varianten van de das, met en zonder negeren. het trefwoord negeren negeert dat een bepaald tuple-element wordt uitgepakt.
Tupels kunnen echter meerdere argumenten hebben, maar paren hebben slechts twee argumenten. In het geval van een paar paren moet het uitpakken dus expliciet worden afgehandeld.
Syntaxis:
tie(int &, int &) = pair1;>
CPP
// CPP code to illustrate tie() in Pair> #include> using> namespace> std;> // Driver Code> int> main()> {> >pair<>int>,>int>>paar1 = { 1, 2 };> >int> a, b;> >tie(a, b) = pair1;> >cout << a <<>' '> << b <<>'
'>;> >pair<>int>,>int>>paar2 = { 3, 4 };> >tie(a, ignore) = pair2;> >// prints old value of b> >cout << a <<>' '> << b <<>'
'>;> >// Illustrating pair of pairs> >pair<>int>, pair<>int>,>char>>> paar3 = { 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.> |
>
>Uitvoer
1 2 3 2 3 4 a>
Code om functies in paar te illustreren:
CPP
Java-array segment
// CPP program to illustrate pair in STL> #include> #include> #include> using> namespace> std;> int> main()> {> >pairint>g1; pairint> g2('Quiz', 3); paarint> g3(g2); paar |
>
>Uitvoer
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>
Tijdcomplexiteit: O(1).
Hulpruimte: O(1).
operatoren(=, ==, !=,>=, <=) in paar
We kunnen ook operatoren met paren gebruiken.
1) gebruik gelijk(=): Het wijst een nieuw object toe voor een paarobject. Syntaxis:
pair& operator= (const pair& pr);>
Hiermee wordt pr toegewezen als de nieuwe inhoud voor het paarobject. Aan de eerste waarde wordt de eerste waarde van pr toegewezen en aan de tweede waarde wordt de tweede waarde van pr toegewezen.
2) Vergelijking (==) operator met paar: Voor de twee gegeven paren, bijvoorbeeld paar1 en paar2, vergelijkt de vergelijkingsoperator de eerste waarde en de tweede waarde van die twee paren, d.w.z. of paar1.eerste gelijk is aan paar2.eerste of niet en of paar1.tweede gelijk is aan paar2.tweede of niet .
d.w.z. if ( (pari1.first ==pair2.first) && (pair1.second==pair2.second) )
Als een van de twee voorwaarden onwaar is, retourneert deze onwaar, anders waar.
3) Niet gelijk (!=) operator met paar: Voor de gegeven twee paren, zeg paar1 en paar2, vergelijkt de != operator de eerste waarden van die twee paren, dat wil zeggen als paar1.eerst gelijk is aan paar2.eerst of niet, en als ze gelijk zijn, controleert hij de tweede waarden van beide.
4) Logische(>=, <= )operatoren met paar: Voor de gegeven twee paren, zeg paar1 en paar2, kan de =,> ook met paren worden gebruikt. Het retourneert 0 of 1 door alleen de eerste waarde van het paar te vergelijken. Voor paren als p1=(1,20) en p2=(1,10) p2
&lijst=PLqM7alHXFySGg6GSRmE2INI4k8fPH5qVB