logo

Par i C++ Standard Template Library (STL)

Par brukes til å kombinere to verdier som kan være av forskjellige datatyper. Par gir en måte å lagre to heterogene objekter som en enkelt enhet. Det brukes i utgangspunktet hvis vi ønsker å lagre tupler. Parbeholderen er en enkel beholder definert i header som består av to dataelementer eller objekter.

  • Det første elementet refereres til som 'første' og det andre elementet som 'andre', og rekkefølgen er fast (første, andre).
  • Par kan tildeles, kopieres og sammenlignes. Matrisen av objekter som er tildelt i en kart eller hash_map er av typen 'par' som standard der alle de 'første' elementene er unike nøkler knyttet til deres 'andre' verdiobjekter.
  • For å få tilgang til elementene bruker vi variabelnavn etterfulgt av punktoperator etterfulgt av nøkkelordet 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>>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;> }>



>

>

Produksjon

100 G>

Initialisere et par: Vi kan også initialisere et par.

Syntaks:

pair Pair_name (value1, value2) ;>

Ulike måter å initialisere 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>

En annen måte å initialisere et par på er å bruke make_pair()-funksjonen.

g2 = make_pair(1, 'a');>

En annen gyldig syntaks for å deklarere 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 dataskjermen min
Produksjon

GeeksForGeeks 1.23>

Merk: Hvis ikke initialisert, blir den første verdien av paret automatisk initialisert.

C++




// CPP program to illustrate> // auto-initializing of pair STL> #include> #include> using> namespace> std;> int> main()> {> >pair<>int>,>double>>PAIR1;> >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; }>

>

>

Produksjon:

00>

Medlemsfunksjoner

1) make_pair() : Denne malfunksjonen lar deg lage et verdipar uten å skrive typene eksplisitt.
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>>PAIR1;> >pairdouble>PAIR2('GeeksForGeeks', 1.23); pairdouble> PAIR3; PAIR1.first = 100; PAIR1.second = 'G'; PAIR3 = make_pair('GeeksForGeeks er best', 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; }>

>

>

Produksjon

100 G GeeksForGeeks 1.23 GeeksForGeeks is Best 4.56>

2) bytte: Denne funksjonen bytter innholdet i ett parobjekt med innholdet i et annet parobjekt. Parene må være av samme type.
Syntaks:

streng for å chatte
pair1.swap(pair2) ;>

For to gitte par, si par1 og par2 av samme type, vil byttefunksjonen bytte par1.først 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;> }>

>

>

Produksjon

Before swapping: Contents of pair1 = A 1Contents of pair2 = B 2 After swapping: Contents of pair1 = B 2Contents of pair2 = A 1>

3) uavgjort(): Denne funksjonen fungerer på samme måte som i tupler . Den lager en tuppel av lvalue-referanser til argumentene, dvs. å pakke ut tuppelverdiene (eller her paret) i separate variabler. Akkurat som i tupler er her også to varianter av slipset, med og uten ignore. ignorer nøkkelordet ignorerer et bestemt tuppelelement fra å bli pakket ut.
Imidlertid kan tupler ha flere argumenter, men par har bare to argumenter. Så i tilfelle av par, må utpakking håndteres eksplisitt.
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.>

>

>

Produksjon

1 2 3 2 3 4 a>

Kode for å illustrere funksjoner 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 g4(5, 10); g1 = make_pair(string('Geeks'), 1); g2.first = '.com'; g2.sekund = 2; cout<< 'This is pair g' << g1.second << ' with ' << 'value ' << g1.first << '.' << endl << endl; cout << 'This is pair g' << g3.second << ' with value ' << g3.first << 'This pair was initialized as a copy of ' << 'pair g2' << endl << endl; cout << 'This is pair g' << g2.second << ' with value ' << g2.first << ' The values of this pair were' << ' changed after initialization.' << endl << endl; cout << 'This is pair g4 with values ' << g4.first << ' and ' << g4.second << ' made for showing addition. The ' << 'sum of the values in this pair is ' << g4.first + g4.second << '.' << endl << endl; cout << 'We can concatenate the values of' << ' the pairs g1, g2 and g3 : ' << g1.first + g3.first + g2.first << endl << endl; cout << 'We can also swap pairs ' << '(but type of pairs should be same) : ' << endl; cout << 'Before swapping, ' << 'g1 has ' << g1.first << ' and g2 has ' << g2.first << endl; swap(g1, g2); cout << 'After swapping, ' << 'g1 has ' << g1.first << ' and g2 has ' << g2.first; return 0; }>

>

>

Produksjon

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).

Ekstra plass: O(1).

scan.next java

operatorer(=, ==, !=,>=, <=) i par

Vi kan også bruke operatører med par.

1) ved å bruke lik(=): Den tildeler et nytt objekt for et parobjekt. Syntaks:

pair& operator= (const pair& pr);>

Dette tildeler pr som nytt innhold for parobjektet. Den første verdien tildeles den første verdien av pr og den andre verdien tildeles den andre verdien av pr.

2) Sammenligning (==) operator med par: For de to gitte parene, si par1 og par2, sammenligner sammenligningsoperatoren den første verdien og den andre verdien til de to parene, dvs. om par1.først er lik par2.først eller ikke, og hvis par1.sekund er lik par2.sekund eller ikke .

dvs. hvis ((pari1.first ==par2.først) && (par1.second==par2.second) )

Hvis noen av de to betingelsene er usann, returnerer den falsk ellers sant.

3) Ikke lik (!=) operator med par: For de gitte to parene, si par1 og par2, sammenligner !=-operatoren de første verdiene til de to parene, dvs. hvis par1.først er lik par2.først eller ikke, hvis de er like, så sjekker den de andre verdiene til begge.

4) Logiske (>=, <= ) operatorer med par: For de gitte to parene, si par1 og par2, kan =,>, også brukes med par. Den returnerer 0 eller 1 ved kun å sammenligne den første verdien av paret. For par som p1=(1,20) og p2=(1,10) p2eller

&list=PLqM7alHXFySGg6GSRmE2INI4k8fPH5qVB