C++ Sort Vector de perechi

C Sort Vector De Perechi



C++ oferă facilitatea de a afișa vectorul de perechi și de a sorta vectorul de perechi. Există un container în C++ care conține două valori care sunt mapate una cu cealaltă numite „pereche” și un „vector de perechi”, care este un vector care conține multe dintre aceste perechi. Sortarea înseamnă aranjarea datelor în ordine crescătoare sau descrescătoare conform cerințelor. Aici, vom învăța cum să sortăm vectorul de perechi în programarea C++. Putem sorta vectorul de perechi atât în ​​ordine „crescător” cât și în ordine „descrescătoare” în C++. Putem sorta cu ușurință vectorul de perechi utilizând metoda „sort()”. Să facem câteva coduri aici pentru a sorta vectorul de perechi.

Exemplul 1:

Să începem codul prin includerea fișierului antet aici, care este „bits/stdc++.h”. După ce avem acest fișier antet, nu trebuie să includem mai multe fișiere antet, deoarece conține toate bibliotecile necesare. Apoi, adăugăm spațiul de nume „std” și apelăm funcția „main()”.







Acum, declarăm un „vector de perechi” numit „my_vect” și punem tipul de date „int”, astfel încât datele pe care le introducem în aceste perechi să fie tipul de date „integer”. Sub aceasta, inițializam două matrice cu numele „my_arr1[]” și „my_arr2[]”. Aici, inițializam prima și a doua valoare a perechilor cu aceste valori ale matricei. Apoi, folosim bucla „for” pentru a introduce aceste valori în vectorul de perechi. Aici, folosim funcția „push_back()” care ajută la inserarea valorilor la sfârșitul vectorului. În această funcție, plasăm opțiunea „make_pair” care este utilizată pentru a construi obiectul pereche a două valori „my_arr1” și „my_arr2”.



După aceasta, imprimăm vectorul de perechi utilizând din nou bucla „for”. Aici, cuvintele cheie „primul” și „al doilea” sunt adăugate pentru a obține prima și a doua valoare a vectorului de perechi. Acest lucru tipărește vectorul de perechi fără a sorta aici. Acum, folosim funcția „sort()” pentru a sorta vectorul de perechi. Aici, funcțiile „begin()” și „end()” sunt folosite pentru a trece începutul și sfârșitul vectorului de perechi la această funcție „sort()”.



După sortare, imprimăm din nou vectorul de perechi utilizând „cout” și plasăm primul și al doilea cuvânt cheie cu „my_vec[i]”. Acum, vectorul sortat de perechi este de asemenea tipărit aici.





Cod 1:

#include

folosind namespace std;

int principal ( )

{

vector < pereche < tu tu > > my_vect;

int my_arr1 [ ] = { 49 , douăzeci , cincisprezece , 56 } ;

int my_arr2 [ ] = { 37 , douăzeci , 90 , 55 } ;

int num = dimensiunea ( my_arr1 ) / dimensiunea ( my_arr1 [ 0 ] ) ;

pentru ( int i = 0 ; i < dacă i++ )

my_vect.push_back ( face_pereche ( my_arr1 [ i ] ,my_arr2 [ i ] ) ) ;

cout << 'Înainte de sortarea vectorului de perechi: ' << endl;

pentru ( int i = 0 ; i < dacă i++ )

{

cout << my_vect [ i ] .primul << ' '

<< my_vect [ i ] .al doilea << endl;

}

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

cout << ' \n După sortarea vectorului perechilor: ' << endl ;

pentru ( int i = 0 ; i < dacă i++ )

{

cout << my_vect [ i ] .primul << ' '

<< my_vect [ i ] .al doilea << endl;

}

întoarcere 0 ;

}



Ieșire:

Mai întâi este afișat vectorul perechilor înainte de sortare. Apoi, aplicăm tehnica de sortare pe acest vector de perechi. Apoi, vectorul sortat de perechi este de asemenea afișat aici. Putem vedea că vectorul de perechi este sortat în ordine crescătoare pe baza primului element al perechii.

Exemplul 2:

În acest exemplu, acum creăm un „vector de perechi” numit „vector_1” și atribuim tipul de date „int”, ceea ce înseamnă că informațiile pe care le introducem în aceste perechi sunt de tipul de date „integer”. Două matrice cu numele „first_arr[]” și „second_arr[]” sunt inițializate în cele ce urmează. Aici, inițializam valorile acestor matrice pentru valorile primei și celei de-a doua perechi.

Apoi, introducem aceste valori în vectorul de perechi folosind bucla „for”. Opțiunea „make_pair”, care este folosită pentru a genera obiectul pereche a două valori din tablourile „first_arr[]” și „second_arr[]”, este plasată în cadrul metodei „push_back()”, care ajută la inserarea elementelor la capătul vectorului.

Apoi, folosim bucla „for” încă o dată pentru a scoate vectorul de perechi. Pentru a obține prima și a doua valoare a vectorului de perechi, sunt introduse cuvintele cheie „primul” și „al doilea”. Aceasta scoate vectorul pereche fără nicio sortare în acest moment. Acum sortăm „vectorul de perechi” utilizând o funcție „sort()” în ordine descrescătoare. În această funcție, plasăm funcțiile „rbegin()” și „rend()” astfel încât să inverseze sortarea și să înceapă de la sfârșitul valorilor perechii. Le aranjează în ordine descrescătoare.

După sortare, folosim „cout” pentru a scoate vectorul de perechi după ce folosim din nou bucla „for”, inserând primul și al doilea cuvânt cheie cu „vector_1[i]” în „cout”. Aici este tipărit și vectorul sortat al perechilor.

Cod 2:

#include

folosind namespace std;

int principal ( )

{

vector < pereche < tu tu > > vector_1;

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

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

int s = dimensiunea ( primul_arr ) / dimensiunea ( primul_arr [ 0 ] ) ;

pentru ( int i = 0 ; i < s; i++ )

vector_1.push_back ( face_pereche ( primul_arr [ i ] , secund_arr [ i ] ) ) ;

cout << „Înainte de sortare:” << endl;

pentru ( int i = 0 ; i < s; i++ ) {

cout << vector_1 [ i ] .primul << ' ' << vector_1 [ i ] .al doilea

<< endl;

}

fel ( vector_1.begin ( ) , vector_1.rend ( ) ) ;

cout << endl << „După sortare:” << endl;

pentru ( int i = 0 ; i < s; i++ ) {

cout << vector_1 [ i ] .primul << ' ' << vector_1 [ i ] .al doilea

<< endl;

}

întoarcere 0 ;

}

Ieșire:

Vectorul de pre-sortare al perechilor este afișat mai întâi aici, urmat de vectorul sortat al perechilor, care este, de asemenea, afișat aici după ce i se aplică procesul de sortare. După cum putem vedea, elementul inițial al fiecărei perechi determină modul în care vectorul de perechi este sortat în ordine descrescătoare.

Exemplul 3:

Aici, creăm o funcție de tip „bool” numită „sortBySecElement” pentru a sorta numerele vectoriale. În această funcție, plasăm o condiție, „valoarea1.secunda < valoare2.secunda”, care compară valorile secunde ale ambilor vectori de perechi și returnează numerele.

Apoi, „main()” este invocat în cele ce urmează, unde creăm vectorul de perechi. Următoarele inițializează două matrice numite „new_array1[]” și „new_aray2[]”. Aici, inserăm valorile perechilor în aceste matrice. Apoi, folosim bucla „for” pentru a introduce aceste valori în vectorul de perechi. În interiorul metodei „push_back()”, care ajută la inserarea elementelor la sfârșitul vectorului, se află opțiunea „make_pair” care este utilizată pentru a crea obiectul pereche de două valori din „new_array1[]” și „new_array2[ ]” matrice.

Apoi scoatem vectorul de perechi folosind o altă buclă „for”. Cuvintele cheie „primul” și „al doilea” sunt inserate pentru a obține prima și a doua valoare a vectorului de perechi. Nu se face sortare în această etapă, iar vectorul pereche este scos la ieșire. Acum folosim funcția „sort()” pentru a o sorta. Începutul și sfârșitul vectorului de perechi sunt furnizate funcției „sort()” în acest caz prin utilizarea funcțiilor „begin()” și „end()”. De asemenea, plasăm funcția „sortBySecElement” pe care am creat-o anterior în această funcție „sort()” unde setăm modelul de sortare a vectorului perechilor din al doilea element al vectorului în ordine crescătoare.

Acum, folosim din nou bucla „for”. Apoi, primul și al doilea cuvânt cheie sunt inserate cu „new_vec[i]” în „cout” pentru a produce din nou vectorul de perechi după sortare. Tot aici este imprimat acum vectorul sortat al perechilor în ordine crescătoare.

Cod 3:

#include

folosind namespace std;

bool sortBySecElement ( const pereche < tu tu > & valoare 1,

const pereche < tu tu > & valoarea2 )

{

întoarcere ( valoare1.secunda < valoare2.secunda ) ;

}

int principal ( )

{

vector < pereche < tu tu > > lucru nou

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

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

int value = sizeof ( new_arr1 ) / dimensiunea ( new_arr1 [ 0 ] ) ;

pentru ( int i = 0 ; i < valoare; i++ )

new_vec.push_back ( face_pereche ( new_arr1 [ i ] ,new_arr2 [ i ] ) ) ;

cout << „Înainte de sortare:” << endl ;

pentru ( int i = 0 ; i < valoare; i++ )

{

cout << lucru nou [ i ] .primul << ' '

<< lucru nou [ i ] .al doilea << endl;

}

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

cout << endl << „După sortare:” << endl ;

pentru ( int i = 0 ; i < valoare; i++ )

{

cout << lucru nou [ i ] .primul << ' '

<< lucru nou [ i ] .al doilea << endl;

}

întoarcere 0 ;

}

Ieșire:

Aici este afișat vectorul sortat al perechilor, iar sortarea se face în funcție de valorile secunde ale perechilor. Al doilea element de perechi este stocat în ordine crescătoare și afișat aici.

Concluzie

Acest ghid se referă la „vectorul de sortare a perechilor” în C++. Am explorat „vectorul perechilor” fără sortare, precum și sortarea „vectorului perechilor” în ordine crescătoare și descrescătoare. Am ilustrat acest lucru cu exemplele în care sortăm „vectorul de perechi” în funcție de primul și al doilea număr al acestor perechi în programarea C++. Am aflat că metoda „sort()” ajută la realizarea acestei sortări.