C++ Sorter vektor af par

C Sorter Vektor Af Par



C++ giver mulighed for at vise vektoren af ​​par og sortere vektoren af ​​par. Der er en beholder i C++, der indeholder to værdier, der er afbildet til hinanden, kaldet et 'par' og en 'vektor af par', som er en vektor, der har mange af disse par i sig. Sortering betyder at arrangere dataene i stigende eller faldende rækkefølge i henhold til kravene. Her vil vi lære, hvordan man sorterer vektoren af ​​par i C++-programmering. Vi kan sortere vektoren af ​​par i både 'stigende' og 'faldende' orden i C++. Vi kan nemt sortere vektoren af ​​par ved at bruge 'sort()'-metoden. Lad os lave nogle koder her for at sortere vektoren af ​​par.

Eksempel 1:

Lad os begynde koden med at inkludere header-filen her, som er 'bits/stdc++.h'. Efter at have haft denne header-fil, behøver vi ikke at inkludere flere header-filer, da den indeholder alle de nødvendige biblioteker. Derefter tilføjer vi 'std'-navnerummet og kalder 'main()'-funktionen.







Nu erklærer vi en 'vektor af par' ved navn 'my_vect' og sætter datatypen 'int', så de data, vi indtaster i disse par, er datatypen 'heltal'. Herunder initialiserer vi to arrays med navnene 'my_arr1[]' og 'my_arr2[]'. Her initialiserer vi parrenes første og anden værdi med disse matrixværdier. Derefter bruger vi 'for'-løkken til at indtaste disse værdier i vektoren af ​​par. Her bruger vi funktionen 'push_back()', som hjælper med at indsætte værdierne i slutningen af ​​vektoren. Inde i denne funktion placerer vi 'make_pair'-indstillingen, som bruges til at konstruere parobjektet med to værdier af 'my_arr1' og 'my_arr2'.



Herefter udskriver vi vektoren af ​​par ved at bruge 'for'-løkken igen. Her tilføjes nøgleordet 'første' og 'andet' for at få den første og anden værdi af vektoren af ​​par. Dette udskriver vektoren af ​​par uden at sortere her. Nu bruger vi funktionen 'sort()' til at sortere vektoren af ​​par. Her bruges funktionerne 'begin()' og 'end()' som passerer starten og slutningen af ​​vektoren af ​​par til denne 'sort()'-funktion.



Efter sortering udskriver vi vektoren af ​​par igen ved at bruge 'cout' og placerer det første og andet nøgleord med 'my_vec[i]'. Nu er den sorterede vektor af par også udskrevet her.





Kode 1:

#include

bruger navneområde std;

int main ( )

{

vektor < par < dig dig > > min_vect;

int min_arr1 [ ] = { 49 , tyve , femten , 56 } ;

int min_arr2 [ ] = { 37 , tyve , 90 , 55 } ;

int num = størrelse på ( min_arr1 ) / størrelse af ( min_arr1 [ 0 ] ) ;

til ( int jeg = 0 ; jeg < om i++ )

my_vect.push_back ( make_pair ( min_arr1 [ jeg ] ,min_arr2 [ jeg ] ) ) ;

cout << 'Før sortering af vektor af par: ' << endl;

til ( int jeg = 0 ; jeg < om i++ )

{

cout << min_vect [ jeg ] .først << ' '

<< min_vect [ jeg ] .anden << endl;

}

sortere ( my_vect.begin ( ) , my_vect.end ( ) ) ;

cout << ' \n Efter sortering af vektor af par: ' << endl ;

til ( int jeg = 0 ; jeg < om i++ )

{

cout << min_vect [ jeg ] .først << ' '

<< min_vect [ jeg ] .anden << endl;

}

Vend tilbage 0 ;

}



Produktion:

Vektoren af ​​par før sortering vises først. Derefter anvender vi sorteringsteknikken på denne vektor af par. Så vises den sorterede vektor af par også her. Vi kan se, at vektoren af ​​par er sorteret i stigende rækkefølge baseret på det første element i parret.

Eksempel 2:

I dette eksempel opretter vi nu en 'vektor af par' kaldet 'vektor_1' og tildeler datatypen 'int', hvilket betyder, at den information, vi indtaster i disse par, er af datatypen 'heltal'. To arrays med navnene 'first_arr[]' og 'second_arr[]' initialiseres i det følgende. Her initialiserer vi disse arrays værdier for det første og andet pars værdier.

Dernæst indtaster vi disse værdier i vektoren af ​​par ved hjælp af 'for'-løkken. Indstillingen 'make_pair', som bruges til at generere parobjektet med to værdier fra 'first_arr[]' og 'second_arr[]' arrays, er placeret inde i 'push_back()' metoden, som hjælper med at indsætte elementerne ved slutningen af ​​vektoren.

Dernæst bruger vi 'for'-løkken endnu en gang til at udlæse vektoren af ​​par. For at opnå den første og anden værdi af vektoren af ​​par, indsættes nøgleordene 'første' og 'andet'. Dette udsender parvektoren uden nogen sortering på dette tidspunkt. Vi sorterer nu 'vektoren af ​​par' ved at bruge en 'sort()'-funktion i faldende rækkefølge. I denne funktion placerer vi funktionerne 'rbegin()' og 'rend()', så det vil vende sorteringen og starte fra slutningen af ​​parrets værdier. Den arrangerer dem i faldende rækkefølge.

Efter sorteringen bruger vi 'cout' til at udlæse vektoren af ​​par efter at have brugt 'for'-løkken endnu en gang ved at indsætte det første og andet nøgleord med 'vector_1[i]' i 'cout'. Det er her, parringernes sorterede vektor også udskrives.

Kode 2:

#include

bruger navneområde std;

int main ( )

{

vektor < par < dig dig > > vektor_1;

int first_arr [ ] = { 77 , 29 , 97 , femten } ;

int anden_arr [ ] = { 35 , 89 , 64 , 25 } ;

int s = størrelse af ( første_arr ) / størrelse af ( første_arr [ 0 ] ) ;

til ( int i = 0 ; jeg < s; i++ )

vector_1.push_back ( make_pair ( første_arr [ jeg ] , anden_arr [ jeg ] ) ) ;

cout << 'Før sortering:' << endl;

til ( int i = 0 ; jeg < s; i++ ) {

cout << vektor_1 [ jeg ] .først << ' ' << vektor_1 [ jeg ] .anden

<< endl;

}

sortere ( vektor_1.rbegin ( ) , vektor_1.rend ( ) ) ;

cout << endl << 'Efter sortering:' << endl;

til ( int i = 0 ; jeg < s; i++ ) {

cout << vektor_1 [ jeg ] .først << ' ' << vektor_1 [ jeg ] .anden

<< endl;

}

Vend tilbage 0 ;

}

Produktion:

Parrenes forsorteringsvektor vises her først, efterfulgt af parrenes sorterede vektor, som ligeledes vises her, efter at sorteringsprocessen er anvendt på den. Som vi kan se, bestemmer det indledende element i hvert par, hvordan vektoren af ​​par sorteres i faldende rækkefølge.

Eksempel 3:

Her opretter vi en funktion af typen 'bool' ved navn 'sortBySecElement' for at sortere vektornumrene. I denne funktion placerer vi en betingelse, 'værdi1.sekund < værdi2.sekund', som sammenligner den anden værdi af begge vektorer af par og returnerer tallene.

Derefter kaldes 'main()' i det følgende, hvor vi opretter vektoren af ​​par. Det følgende initialiserer to arrays med navnet 'new_array1[]' og 'new_aray2[]'. Her indsætter vi værdierne af par i disse arrays. Dernæst bruger vi 'for'-løkken til at indtaste disse værdier i vektoren af ​​par. Inde i 'push_back()'-metoden, som hjælper med at indsætte elementerne i slutningen af ​​vektoren, er 'make_pair'-indstillingen, som bruges til at skabe parobjektet med to værdier fra 'new_array1[]' og 'new_array2[ ]” arrays.

Vi udsender derefter vektoren af ​​par ved hjælp af en anden 'for'-løkke. De 'første' og 'andet' nøgleord indsættes for at få den første og anden værdi af vektoren af ​​par. Der udføres ingen sortering på dette trin, og parvektoren udsendes. Vi bruger nu 'sort()'-funktionen til at sortere den. Begyndelsen og slutningen af ​​vektoren af ​​par leveres til 'sort()'-funktionen i dette tilfælde via brugen af ​​'begin()' og 'end()'-funktionerne. Vi placerer også funktionen 'sortBySecElement', som vi tidligere har oprettet i denne 'sort()'-funktion, hvor vi sætter mønsteret for sorteringsvektor af par fra det andet element i vektoren i stigende rækkefølge.

Nu bruger vi 'for'-løkken igen. Derefter indsættes det første og andet nøgleord med 'new_vec[i]' i 'cout' for at producere vektoren af ​​par igen efter sortering. Det er også her den sorterede vektor af parrene i stigende rækkefølge nu udskrives.

Kode 3:

#include

bruger navneområde std;

bool sortBySecElement ( konst par < dig dig > & værdi1,

konst par < dig dig > & værdi2 )

{

Vend tilbage ( værdi1.sekund < værdi2.sekund ) ;

}

int main ( )

{

vektor < par < dig dig > > ny_ting

int new_arr1 [ ] = { 3. 4 , 29 , 65 , 48 } ;

int new_arr2 [ ] = { 67 , 19 , 54 , 7 } ;

int værdi = størrelse på ( ny_arr1 ) / størrelse på ( ny_arr1 [ 0 ] ) ;

til ( int jeg = 0 ; jeg < værdi; i++ )

new_vec.push_back ( make_pair ( ny_arr1 [ jeg ] ,ny_arr2 [ jeg ] ) ) ;

cout << 'Før sortering:' << endl ;

til ( int jeg = 0 ; jeg < værdi; i++ )

{

cout << ny_ting [ jeg ] .først << ' '

<< ny_ting [ jeg ] .anden << endl;

}

sortere ( new_vec.begin ( ) , new_vec.end ( ) , sortBySecElement ) ;

cout << endl << 'Efter sortering:' << endl ;

til ( int jeg = 0 ; jeg < værdi; i++ )

{

cout << ny_ting [ jeg ] .først << ' '

<< ny_ting [ jeg ] .anden << endl;

}

Vend tilbage 0 ;

}

Produktion:

Her vises den sorterede vektor af par, og sorteringen sker i henhold til parrenes anden værdi. Det andet element af par gemmes i stigende rækkefølge og vises her.

Konklusion

Denne guide handler om 'sorteringsvektoren af ​​par' i C++. Vi udforskede 'vektoren af ​​par' uden at sortere såvel som at sortere 'vektoren af ​​par' i stigende og faldende rækkefølge. Vi illustrerede dette med eksemplerne, hvor vi sorterer 'vektoren af ​​par' efter det første og andet nummer af disse par i C++ programmering. Vi lærte, at 'sort()'-metoden hjælper med at udføre denne sortering.