Par används för att kombinera två värden som kan vara av olika datatyper. Par ger ett sätt att lagra två heterogena objekt som en enda enhet. Det används i princip om vi vill lagra tuplar. Parbehållaren är en enkel behållare definierad i header som består av två dataelement eller objekt.
- Det första elementet hänvisas till som 'första' och det andra elementet som 'andra' och ordningen är fast (första, andra).
- Par kan tilldelas, kopieras och jämföras. Arrayen av objekt som allokeras i en Karta eller hash_map är av typen 'pair' som standard där alla de 'första' elementen är unika nycklar associerade med deras 'andra' värdeobjekt.
- För att komma åt elementen använder vi variabelnamn följt av punktoperator följt av nyckelordet first eller second.
Syntax:
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;> }> |
>
>Produktion
100 G>
Initiera ett par: Vi kan också initiera ett par.
Syntax:
pair Pair_name (value1, value2) ;>
Olika sätt att initiera par:
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>
Ett annat sätt att initiera ett par är att använda funktionen make_pair().
g2 = make_pair(1, 'a');>
En annan giltig syntax för att deklarera par är:
g2 = {1, 'a'};> CPP
np prick
// 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; }> |
>
>Produktion
GeeksForGeeks 1.23>
Notera: Om det inte initieras, initieras det första värdet i paret automatiskt.
C++
// CPP program to illustrate> // auto-initializing of pair STL> #include> #include> using> namespace> std;> int> main()> {> >pair<>int>,>double>>PAIR1;> >pairchar>PAR2; // den initieras till 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; }> |
>
>
partiell derivatsymbol latex
Produktion:
00>
Medlemsfunktioner
1) make_pair() : Denna mallfunktion gör det möjligt att skapa ett värdepar utan att skriva typerna explicit.
Syntax:
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 är bäst', 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; }> |
>
>Produktion
100 G GeeksForGeeks 1.23 GeeksForGeeks is Best 4.56>
2) byta: Denna funktion byter ut innehållet i ett parobjekt med innehållet i ett annat parobjekt. Paren måste vara av samma typ.
Syntax:
ett objekt i java
pair1.swap(pair2) ;>
För två givna par, säg par1 och par2 av samma typ, kommer swapfunktionen att byta par1.först med par2.första och par1.andra med par2.andra.
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;> }> |
>
>Produktion
Before swapping: Contents of pair1 = A 1Contents of pair2 = B 2 After swapping: Contents of pair1 = B 2Contents of pair2 = A 1>
3) slips(): Denna funktion fungerar på samma sätt som i tupler . Den skapar en tuppel av lvalue-referenser till dess argument, dvs. att packa upp tupelvärdena (eller här paret) i separata variabler. Precis som i tuplar finns här också två varianter av slipsen, med och utan ignore. ignorera nyckelordet ignorerar ett visst tupelelement från att packas upp.
Däremot kan tupler ha flera argument men par har bara två argument. Så, i fallet med ett par, måste uppackning explicit hanteras.
Syntax:
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.> |
>
>Produktion
1 2 3 2 3 4 a>
Kod för att illustrera funktioner i par:
java hur man konverterar sträng till int
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); par |
>
>Produktion
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>
Tidskomplexitet: O(1).
Extra utrymme: O(1).
operatorer(=, ==, !=,>=, <=) i par
Vi kan också använda operatörer med par.
1) med lika(=): Den tilldelar ett nytt objekt för ett parobjekt. Syntax:
pair& operator= (const pair& pr);>
Detta tilldelar pr som nytt innehåll för parobjektet. Det första värdet tilldelas det första värdet av pr och det andra värdet tilldelas det andra värdet av pr.
2) Jämförelse (==) operator med par: För de två givna paren, säg par1 och par2, jämför jämförelseoperatorn det första värdet och det andra värdet av dessa två par, dvs om par1.först är lika med par2.först eller inte och om par1.second är lika med par2.second eller inte .
dvs om ( (pari1.först ==par2.först) && (par1.andra==par2.andra) )
Om något av de två villkoren är falskt returnerar det falskt annars sant.
3) Inte lika (!=) operator med par: För de givna två paren, säg par1 och par2, jämför operatorn != de första värdena av dessa två par, dvs om par1.först är lika med par2.först eller inte, om de är lika kontrollerar den de andra värdena för båda.
4) Logiska(>=, <= )operatorer med par: För de givna två paren, säg par1 och par2, kan =,>, användas med par också. Den returnerar 0 eller 1 genom att endast jämföra det första värdet av paret. För par som p1=(1,20) och p2=(1,10) p2
&list=PLqM7alHXFySGg6GSRmE2INI4k8fPH5qVB