La coppia viene utilizzata per combinare insieme due valori che possono essere di tipi di dati diversi. La coppia fornisce un modo per archiviare due oggetti eterogenei come una singola unità. Fondamentalmente viene utilizzato se vogliamo memorizzare tuple. Il contenitore della coppia è un contenitore semplice definito in intestazione composta da due elementi dati o oggetti.
- Il primo elemento viene indicato come 'primo' e il secondo elemento come 'secondo' e l'ordine è fisso (primo, secondo).
- La coppia può essere assegnata, copiata e confrontata. L'array di oggetti allocati in a carta geografica oppure hash_map è di tipo 'pair' per impostazione predefinita in cui tutti i 'primi' elementi sono chiavi univoche associate ai loro 'secondi' oggetti di valore.
- Per accedere agli elementi utilizziamo il nome della variabile seguito dall'operatore punto seguito dalla parola chiave first o second.
Sintassi:
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>>COPPIA1;> >// 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;> }> |
>
>Produzione
100 G>
Inizializzazione di una coppia: Possiamo anche inizializzare una coppia.
Sintassi:
pair Pair_name (value1, value2) ;>
Diversi modi per inizializzare la coppia:
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>
Un altro modo per inizializzare una coppia è utilizzare la funzione make_pair().
g2 = make_pair(1, 'a');>
Un'altra sintassi valida per dichiarare la coppia è:
g2 = {1, 'a'};> CPP
corda in c
// CPP program to illustrate> // Initializing of pair STL> #include> #include> using> namespace> std;> // Driver Code> int> main()> {> >// defining a pair> >pairdouble>COPPIA2('GeeksForGeeks', 1.23); cout<< PAIR2.first << ' '; cout << PAIR2.second << endl; return 0; }> |
>
>
opacità della transizione cssProduzione
GeeksForGeeks 1.23>
Nota: Se non inizializzato, il primo valore della coppia viene inizializzato automaticamente.
C++
// CPP program to illustrate> // auto-initializing of pair STL> #include> #include> using> namespace> std;> int> main()> {> >pair<>int>,>double>>COPPIA1;> >pairchar>COPPIA2; // viene inizializzato a 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; }> |
>
>
Produzione:
00>
Funzioni dei membri
1) crea_coppia() : Questa funzione modello consente di creare una coppia di valori senza scrivere esplicitamente i tipi.
Sintassi:
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>>COPPIA1;> >pairdouble>COPPIA2('GeeksForGeeks', 1.23); coppiadoppia> COPPIA3; COPPIA1.primo = 100; COPPIA1.secondo = 'G'; PAIR3 = make_pair('GeeksForGeeks è il migliore', 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; }> |
>
>Produzione
100 G GeeksForGeeks 1.23 GeeksForGeeks is Best 4.56>
2) scambiare: Questa funzione scambia il contenuto di un oggetto coppia con il contenuto di un altro oggetto coppia. Le coppie devono essere dello stesso tipo.
Sintassi:
neve contro ghiaccio
pair1.swap(pair2) ;>
Per due coppie date, ad esempio coppia1 e coppia2 dello stesso tipo, la funzione di scambio scambierà la coppia1.primo con coppia2.primo e coppia1.secondo con coppia2.secondo.
CPP
// CPP Program to demonstrate swap()> // function in pair> #include> #include> using> namespace> std;> // Driver Code> int> main()> {> >pair<>char>,>int>>coppia1 = crea_coppia(>'A'>, 1);> >pair<>char>,>int>>coppia2 = crea_coppia(>'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;> }> |
>
>Produzione
Before swapping: Contents of pair1 = A 1Contents of pair2 = B 2 After swapping: Contents of pair1 = B 2Contents of pair2 = A 1>
3) cravatta(): Questa funzione funziona allo stesso modo di in tuple . Crea una tupla di riferimenti lvalue ai suoi argomenti, ovvero per decomprimere i valori della tupla (o qui coppia) in variabili separate. Proprio come nelle tuple, anche qui ci sono due varianti della legatura, con e senza ignora. ignore parola chiave ignora un particolare elemento tupla dall'essere decompresso.
Tuttavia, le tuple possono avere più argomenti, ma le coppie hanno solo due argomenti. Quindi, nel caso di coppie di coppie, il disimballaggio deve essere gestito esplicitamente.
Sintassi:
tie(int &, int &) = pair1;>
CPP
// CPP code to illustrate tie() in Pair> #include> using> namespace> std;> // Driver Code> int> main()> {> >pair<>int>,>int>>coppia1 = { 1, 2 };> >int> a, b;> >tie(a, b) = pair1;> >cout << a <<>' '> << b <<>'
'>;> >pair<>int>,>int>>coppia2 = { 3, 4 };> >tie(a, ignore) = pair2;> >// prints old value of b> >cout << a <<>' '> << b <<>'
'>;> >// Illustrating pair of pairs> >pair<>int>, pair<>int>,>char>>> coppia3 = { 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.> |
>
>Produzione
1 2 3 2 3 4 a>
Codice per illustrare le funzioni in coppia:
CPP
// CPP program to illustrate pair in STL> #include> #include> #include> using> namespace> std;> int> main()> {> >pairint>g1; pairint> g2('Quiz', 3); coppiaint> g3(g2); paio |
>
>Produzione
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>
Complessità temporale: O(1).
Spazio ausiliario: O(1).
chiave univoca mysql
operatori(=, ==, !=,>=, <=) in Coppia
Possiamo usare gli operatori anche con le coppie.
1) utilizzando uguale(=): Assegna un nuovo oggetto per un oggetto coppia. Sintassi:
pair& operator= (const pair& pr);>
Questo assegna pr come nuovo contenuto per l'oggetto coppia. Al primo valore viene assegnato il primo valore di pr e al secondo valore viene assegnato il secondo valore di pr.
2) Operatore di confronto (==) con coppia: Per le due coppie indicate, diciamo coppia1 e coppia2, l'operatore di confronto confronta il primo valore e il secondo valore di quelle due coppie, ovvero se coppia1.primo è uguale a coppia2.primo o no e se coppia1.secondo è uguale a coppia2.secondo o no .
cioè if ( (pari1.primo ==coppia2.primo) && (coppia1.secondo==coppia2.secondo) )
Se una qualsiasi delle due condizioni è falsa allora restituisce falso altrimenti vero.
3) Operatore diverso (!=) con coppia: Per le due coppie indicate, ad esempio coppia1 e coppia2, l'operatore != confronta i primi valori di quelle due coppie, ovvero se coppia1.first è uguale a coppia2.first o no, se sono uguali controlla i secondi valori di entrambi.
4) Operatori logici(>=, <= ) con coppia: Per le due coppie indicate, ad esempio coppia1 e coppia2, =,> può essere utilizzato anche con le coppie. Restituisce 0 o 1 confrontando solo il primo valore della coppia. Per coppie come p1=(1,20) e p2=(1,10) p2
&list=PLqM7alHXFySGg6GSRmE2INI4k8fPH5qVB