Pair wird verwendet, um zwei Werte zu kombinieren, die möglicherweise unterschiedliche Datentypen haben. Pair bietet eine Möglichkeit, zwei heterogene Objekte als eine Einheit zu speichern. Es wird grundsätzlich verwendet, wenn wir Tupel speichern möchten. Der Paarcontainer ist ein einfacher Container, der in definiert ist Header bestehend aus zwei Datenelementen oder Objekten.
- Das erste Element wird als „erstes“ und das zweite Element als „zweite“ bezeichnet und die Reihenfolge ist festgelegt (erstes, zweites).
- Paare können zugewiesen, kopiert und verglichen werden. Das Array der in a zugewiesenen Objekte Karte oder hash_map ist standardmäßig vom Typ „pair“, wobei alle „ersten“ Elemente eindeutige Schlüssel sind, die ihren „zweiten“ Wertobjekten zugeordnet sind.
- Um auf die Elemente zuzugreifen, verwenden wir den Variablennamen, gefolgt vom Punktoperator, gefolgt vom Schlüsselwort first oder 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;> }> |
>
>Ausgabe
100 G>
Ein Paar initialisieren: Wir können auch ein Paar initialisieren.
Syntax:
pair Pair_name (value1, value2) ;>
Verschiedene Möglichkeiten, ein Paar zu initialisieren:
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>
Eine andere Möglichkeit, ein Paar zu initialisieren, ist die Verwendung der Funktion make_pair().
g2 = make_pair(1, 'a');>
Eine weitere gültige Syntax zum Deklarieren eines Paares ist:
g2 = {1, 'a'};> CPP
Java-Beispielcode
// 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; }> |
>
>Ausgabe
GeeksForGeeks 1.23>
Notiz: Wenn er nicht initialisiert wird, wird der erste Wert des Paars automatisch initialisiert.
C++
Konvertieren Sie eine Zeichenfolge in eine Ganzzahl
// CPP program to illustrate> // auto-initializing of pair STL> #include> #include> using> namespace> std;> int> main()> {> >pair<>int>,>double>>PAIR1;> >pairchar>PAAR2; // es wird auf 0 cout initialisiert<< 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; }> |
>
>
Ausgabe:
00>
Mitgliedsfunktionen
1) make_pair() : Mit dieser Vorlagenfunktion können Sie ein Wertepaar erstellen, ohne die Typen explizit zu schreiben.
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 is 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; }> |
>
>Ausgabe
100 G GeeksForGeeks 1.23 GeeksForGeeks is Best 4.56>
2) tauschen: Diese Funktion tauscht den Inhalt eines Paarobjekts mit dem Inhalt eines anderen Paarobjekts aus. Die Paare müssen vom gleichen Typ sein.
Syntax:
aes vs des
pair1.swap(pair2) ;>
Für zwei gegebene Paare, beispielsweise Paar1 und Paar2 desselben Typs, tauscht die Swap-Funktion das Paar1.first mit dem Paar2.first und das Paar1.second mit dem Paar2.second aus.
CPP
// CPP Program to demonstrate swap()> // function in pair> #include> #include> using> namespace> std;> // Driver Code> int> main()> {> >pair<>char>,>int>>paar1 = make_pair(>'A'>, 1);> >pair<>char>,>int>>paar2 = 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;> }> |
>
>Ausgabe
Before swapping: Contents of pair1 = A 1Contents of pair2 = B 2 After swapping: Contents of pair1 = B 2Contents of pair2 = A 1>
3) tie(): Diese Funktion funktioniert genauso wie in Tupel . Es erstellt ein Tupel von L-Wert-Referenzen auf seine Argumente, d. h. um die Werte des Tupels (oder hier des Paares) in separate Variablen zu entpacken. Genau wie bei Tupeln gibt es auch hier zwei Varianten des Gleichstands, mit und ohne Ignorieren. Das Schlüsselwort „ignorieren“ verhindert, dass ein bestimmtes Tupelelement entpackt wird.
Allerdings können Tupel mehrere Argumente haben, Paare jedoch nur zwei Argumente. Im Fall von Paarpaaren muss das Entpacken also explizit gehandhabt werden.
Syntax:
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.> |
>
>Ausgabe
1 2 3 2 3 4 a>
Code zur Veranschaulichung paarweiser Funktionen:
CPP
// 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 |
>
>Ausgabe
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>
Zeitkomplexität: O(1).
Nebenraum: O(1).
Operatoren (=, ==, !=,>=, <=) im Paar
Wir können Operatoren auch mit Paaren verwenden.
1) mit equal(=): Es weist einem Paarobjekt ein neues Objekt zu. Syntax:
pair& operator= (const pair& pr);>
Dadurch wird pr als neuer Inhalt für das Paarobjekt zugewiesen. Dem ersten Wert wird der erste Wert von pr und dem zweiten Wert der zweite Wert von pr zugewiesen.
2) Vergleichsoperator (==) mit Paar: Für die beiden gegebenen Paare, beispielsweise Paar1 und Paar2, vergleicht der Vergleichsoperator den ersten und zweiten Wert dieser beiden Paare, d. h. ob Paar1.Erster gleich Paar2.Erster ist oder nicht und ob Paar1.Sekunde gleich Paar2.Sekunde ist oder nicht .
d.h. if ( (pari1.first ==pair2.first) && (pair1.second==pair2.second) )
Wenn eine der beiden Bedingungen falsch ist, wird „falsch“ zurückgegeben, andernfalls „wahr“.
String-Vergleich in Java
3) Ungleichheitsoperator (!=) mit Paar: Für die gegebenen zwei Paare, beispielsweise Paar1 und Paar2, vergleicht der !=-Operator die ersten Werte dieser beiden Paare, d. h. ob Paar1.erst gleich Paar2.erste ist oder nicht, wenn sie gleich sind, prüft er die zweiten Werte beider.
4) Logische (>=, <= )Operatoren mit Paar: Für die gegebenen zwei Paare, sagen wir Paar1 und Paar2, kann das =,> auch mit Paaren verwendet werden. Es gibt 0 oder 1 zurück, indem nur der erste Wert des Paares verglichen wird. Für Paare wie p1=(1,20) und p2=(1,10) p2
&list=PLqM7alHXFySGg6GSRmE2INI4k8fPH5qVB