Par bruges til at kombinere to værdier, der kan være af forskellige datatyper. Par giver en måde at gemme to heterogene objekter som en enkelt enhed. Det bruges som udgangspunkt, hvis vi ønsker at opbevare tupler. Parbeholderen er en simpel beholder defineret i header bestående af to dataelementer eller objekter.
- Det første element refereres til som 'første' og det andet element som 'andet', og rækkefølgen er fast (første, anden).
- Par kan tildeles, kopieres og sammenlignes. Rækken af objekter allokeret i en kort eller hash_map er af typen 'par' som standard, hvor alle de 'første' elementer er unikke nøgler forbundet med deres 'anden' værdiobjekter.
- For at få adgang til elementerne bruger vi variabelnavn efterfulgt af prikoperator efterfulgt af nøgleordet first eller second.
Syntaks:
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;> }> |
>
>Produktion
100 G>
Initialisering af et par: Vi kan også initialisere et par.
Syntaks:
pair Pair_name (value1, value2) ;>
Forskellige måder at initialisere par på:
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>
En anden måde at initialisere et par på er ved at bruge make_pair()-funktionen.
g2 = make_pair(1, 'a');>
En anden gyldig syntaks til at erklære par er:
g2 = {1, 'a'};> CPP
sara ali khan alder
// 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; }> |
>
>
hvor stor er min computerskærmProduktion
GeeksForGeeks 1.23>
Bemærk: Hvis den ikke initialiseres, initialiseres den første værdi af parret automatisk.
C++
// CPP program to illustrate> // auto-initializing of pair STL> #include> #include> using> namespace> std;> int> main()> {> >pair<>int>,>double>>PAR1;> >pairchar>PAR2; // den initialiseres til 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; }> |
>
>
Produktion:
00>
Medlemsfunktioner
1) make_pair() : Denne skabelonfunktion gør det muligt at oprette et værdipar uden at skrive typerne eksplicit.
Syntaks:
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>>PAR1;> >pairdouble>PAIR2('GeeksForGeeks', 1.23); pairdouble> PAIR3; PAIR1.first = 100; PAIR1.second = 'G'; PAIR3 = make_pair('GeeksForGeeks er bedst', 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) bytte: Denne funktion bytter indholdet af et parobjekt med indholdet af et andet parobjekt. Parrene skal være af samme type.
Syntaks:
linux fabrikat
pair1.swap(pair2) ;>
For to givne par siger par1 og par2 af samme type, vil swap-funktionen bytte par1.første med par2.første og par1.sekund med par2.sek.
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) uafgjort(): Denne funktion fungerer på samme måde som i tupler . Den opretter en tuple af lvalue-referencer til dens argumenter, dvs. at udpakke tuple-værdierne (eller her parret) i separate variabler. Ligesom i tupler er her også to varianter af slipset, med og uden ignore. ignorer søgeord ignorerer et bestemt tuple-element fra at blive pakket ud.
Tuples kan dog have flere argumenter, men par har kun to argumenter. Så i tilfælde af par af par skal udpakning eksplicit håndteres.
Syntaks:
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>
Kode til illustration af funktioner i par:
CPP
// CPP program to illustrate pair in STL> #include> #include> #include> using> namespace> std;> int> main()> {> >pairint>g1; pairint> g2('Quiz', 3); parint> 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>
Tidskompleksitet: O(1).
Hjælpeplads: O(1).
java parse streng til int
operatorer(=, ==, !=,>=, <=) i par
Vi kan også bruge operatører med par.
1) ved at bruge lige (=): Den tildeler et nyt objekt til et parobjekt. Syntaks:
pair& operator= (const pair& pr);>
Dette tildeler pr som det nye indhold for parobjektet. Den første værdi tildeles den første værdi af pr, og den anden værdi tildeles den anden værdi af pr.
2) Sammenligning (==) operator med par: For de to givne par, f.eks. par1 og par2, sammenligner sammenligningsoperatoren den første værdi og den anden værdi af disse to par, dvs. hvis par1.første er lig med par2.første eller ej, og hvis par1.sekund er lig med par2.sek. eller ej .
dvs. hvis ((pari1.first ==par2.first) && (par1.second==par2.second) )
Hvis en af de to betingelser er falsk, returnerer den falsk ellers sand.
3) Ikke lig (!=) operator med par: For de givne to par, siger par1 og par2, sammenligner !=-operatoren de første værdier af disse to par, dvs. hvis par1.først er lig med par2.først eller ej, hvis de er ens, så kontrollerer den de anden værdier af begge.
4) Logiske(>=, <= )operatorer med par: For de givne to par, siger par1 og par2, kan =,>, også bruges med par. Det returnerer 0 eller 1 ved kun at sammenligne den første værdi af parret. For par som p1=(1,20) og p2=(1,10) p2
&list=PLqM7alHXFySGg6GSRmE2INI4k8fPH5qVB