C++ Paaride vektorite sortimine

C Paaride Vektorite Sortimine



C++ pakub võimalust paaride vektori kuvamiseks ja paaride vektorite sortimiseks. C++-s on konteiner, mis sisaldab kahte üksteisega vastendatud väärtust, mida nimetatakse 'paariks' ja 'paaride vektoriks', mis on vektor, milles on palju neid paare. Sorteerimine tähendab andmete järjestamist vastavalt nõuetele kasvavas või kahanevas järjekorras. Siin õpime, kuidas sorteerida paaride vektorit C++ programmeerimises. Paaride vektoreid saame C++ keeles sortida nii 'kasvavas' kui 'kahanevas' järjekorras. Paaride vektorit on lihtne sortida, kasutades meetodit 'sort()'. Teeme siin mõned koodid paaride vektori sortimiseks.

Näide 1:

Alustame koodiga, lisades siia päisefaili, mis on 'bits/stdc++.h'. Pärast selle päisefaili olemasolu ei pea me rohkem päisefaile lisama, kuna see sisaldab kõiki vajalikke teeke. Seejärel lisame nimeruumi 'std' ja kutsume funktsiooni 'main()'.







Nüüd deklareerime 'paaride vektori' nimega 'my_vect' ja sisestame andmetüübi 'int', nii et nendesse paaridesse sisestatavad andmed on 'täisarv'. Selle all initsialiseerime kaks massiivi nimedega “my_arr1[]” ja “my_arr2[]”. Siin initsialiseerime paaride esimese ja teise väärtuse nende massiivi väärtustega. Seejärel kasutame tsüklit 'for', et sisestada need väärtused paaride vektorisse. Siin kasutame funktsiooni 'push_back()', mis aitab sisestada väärtusi vektori lõppu. Selle funktsiooni sisse asetame valiku 'make_pair', mida kasutatakse paariobjekti koostamiseks kahest väärtusest 'my_arr1' ja 'my_arr2'.



Pärast seda prindime paaride vektori, kasutades uuesti 'for' tsüklit. Siin lisatakse 'esimene' ja 'teine' märksõnad, et saada paaride vektori esimene ja teine ​​väärtus. See prindib paaride vektori ilma siin sortimata. Nüüd kasutame paaride vektori sortimiseks funktsiooni 'sort()'. Siin kasutatakse funktsioone 'begin()' ja 'end()', kui paaride vektori algus ja lõpp on antud funktsioonile 'sort()'.



Pärast sorteerimist trükime paaride vektori uuesti, kasutades “cout” ja asetame esimese ja teise märksõna “minu_vec[i]”. Nüüd trükitakse siia ka sorteeritud paaride vektor.





Kood 1:

#include

kasutades nimeruumi std;

int main ( )

{

vektor < paar < sina, sina > > minu_vekt;

int minu_arr1 [ ] = { 49 , kakskümmend , viisteist , 56 } ;

int minu_arr2 [ ] = { 37 , kakskümmend , 90 , 55 } ;

int num = suurus ( minu_arr1 ) / suurus ( minu_arr1 [ 0 ] ) ;

jaoks ( int i = 0 ; i < kas i++ )

my_vect.push_back ( make_pair ( minu_arr1 [ i ] ,minu_arr2 [ i ] ) ) ;

cout << 'Enne paaride vektori sortimist:' << endl;

jaoks ( int i = 0 ; i < kas i++ )

{

cout << minu_vekt [ i ] .Esiteks << ' '

<< minu_vekt [ i ] .teiseks << endl;

}

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

cout << ' \n Pärast paaride vektori sortimist: ' << endl ;

jaoks ( int i = 0 ; i < kas i++ )

{

cout << minu_vekt [ i ] .Esiteks << ' '

<< minu_vekt [ i ] .teiseks << endl;

}

tagasi 0 ;

}



Väljund:

Esmalt kuvatakse paaride vektor enne sortimist. Seejärel rakendame sellele paaride vektorile sortimistehnikat. Seejärel kuvatakse siin ka paaride sorteeritud vektor. Näeme, et paaride vektor sorteeritakse kasvavas järjekorras paari esimese elemendi alusel.

Näide 2:

Selles näites loome nüüd 'paaride vektori' nimega 'vector_1' ja määrame andmetüübi 'int', mis tähendab, et nendesse paaridesse sisestatav teave on 'täisarv' andmetüüp. Kaks massiivi nimedega “first_arr[]” ja “second_arr[]” initsialiseeritakse järgnevalt. Siin initsialiseerime nende massiivide väärtused esimese ja teise paari väärtuste jaoks.

Järgmisena sisestame need väärtused paaride vektorisse, kasutades tsüklit 'for'. Valik 'make_pair', mida kasutatakse kahe väärtuse paariobjekti genereerimiseks massiividest 'first_arr[]' ja 'second_arr[]', asetatakse meetodi 'push_back()' sisse, mis aitab sisestada üksusi vektori lõpp.

Järgmisena kasutame paaride vektori väljastamiseks veel kord tsüklit 'for'. Paaride vektori esimese ja teise väärtuse saamiseks sisestatakse märksõnad 'esimene' ja 'teine'. See väljastab paarivektori ilma sorteerimiseta. Sorteerime nüüd 'paaride vektori', kasutades funktsiooni 'sort()' kahanevas järjekorras. Sellesse funktsiooni paigutame funktsioonid 'rbegin()' ja 'rend()', nii et see pöörab sortimise ümber ja alustab paari väärtuste lõpust. See korraldab need kahanevas järjekorras.

Pärast sortimist kasutame paaride vektori väljastamiseks sõna 'cout' pärast seda, kui kasutame uuesti 'for' tsüklit, sisestades esimese ja teise märksõna 'vector_1[i]' lahtrisse 'cout'. Siia prinditakse ka paaride sorteeritud vektor.

Kood 2:

#include

kasutades nimeruumi std;

int main ( )

{

vektor < paar < sina, sina > > vektor_1;

int esimene_arr [ ] = { 77 , 29 , 97 , viisteist } ;

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

int s = suurus ( esimene_arr ) / suurus ( esimene_arr [ 0 ] ) ;

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

vector_1.push_back ( make_pair ( esimene_arr [ i ] , teine_arr [ i ] ) ) ;

cout << 'Enne sorteerimist:' << endl;

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

cout << vektor_1 [ i ] .Esiteks << ' ' << vektor_1 [ i ] .teiseks

<< endl;

}

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

cout << endl << 'Pärast sorteerimist:' << endl;

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

cout << vektor_1 [ i ] .Esiteks << ' ' << vektor_1 [ i ] .teiseks

<< endl;

}

tagasi 0 ;

}

Väljund:

Siin näidatakse kõigepealt paaride eelsortimise vektorit, millele järgneb paaride sortimise vektor, mis on samuti näidatud siin pärast sorteerimisprotsessi rakendamist. Nagu näeme, määrab iga paari esialgne element, kuidas paaride vektorit sorteeritakse kahanevas järjekorras.

Näide 3:

Siin loome vektornumbrite sortimiseks „bool” tüüpi funktsiooni nimega „sortBySecElement”. Selles funktsioonis asetame tingimuse 'väärtus1.sekund < väärtus2.sekund', mis võrdleb mõlema paari vektori teist väärtust ja tagastab arvud.

Seejärel kutsutakse esile 'main()', kus loome paaride vektori. Järgnev initsialiseerib kaks massiivi nimega 'uus_massiiv1[]' ja 'uus_massiiv2[]'. Siia sisestame nende massiivide paaride väärtused. Järgmisena kasutame tsüklit 'for' nende väärtuste sisestamiseks paaride vektorisse. Meetodi 'push_back()' sees, mis aitab vektori lõppu üksusi sisestada, on valik 'make_pair', mida kasutatakse kahe väärtuse paariobjekti loomiseks väärtustest 'new_array1[]' ja 'new_array2[ ]” massiivid.

Seejärel väljastame paaride vektori, kasutades teist 'for' tsüklit. Paaride vektori esimese ja teise väärtuse saamiseks sisestatakse märksõnad 'esimene' ja 'teine'. Selles etapis sorteerimist ei tehta ja paarivektor väljastatakse. Nüüd kasutame selle sortimiseks funktsiooni 'sort()'. Paaride vektori algus ja lõpp antakse sel juhul funktsioonile 'sort()' funktsioonide 'begin()' ja 'end()' abil. Samuti asetame funktsiooni 'sortBySecElement', mille me varem lõime, selle funktsiooni 'sort()' sisse, kus määrame vektori teisest elemendist paaride sortimise vektori kasvavas järjekorras.

Nüüd kasutame uuesti tsüklit 'for'. Seejärel sisestatakse esimene ja teine ​​märksõna lahtrisse 'cout' koos 'new_vec[i]', et saada pärast sortimist uuesti paaride vektor. Siia prinditakse nüüd ka kasvavas järjekorras sorteeritud paaride vektor.

Kood 3:

#include

kasutades nimeruumi std;

bool sortBySecElement ( const paar < sina, sina > & väärtus1,

const paar < sina, sina > & väärtus2 )

{

tagasi ( väärtus1.sekund < väärtus2.sekund ) ;

}

int main ( )

{

vektor < paar < sina, sina > > uus_asi

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

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

int väärtus = suurus ( uus_arr1 ) / suurus ( uus_arr1 [ 0 ] ) ;

jaoks ( int i = 0 ; i < väärtus; i++ )

new_vec.push_back ( make_pair ( uus_arr1 [ i ] ,uus_arr2 [ i ] ) ) ;

cout << 'Enne sorteerimist:' << endl ;

jaoks ( int i = 0 ; i < väärtus; i++ )

{

cout << uus_asi [ i ] .Esiteks << ' '

<< uus_asi [ i ] .teiseks << endl;

}

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

cout << endl << 'Pärast sorteerimist:' << endl ;

jaoks ( int i = 0 ; i < väärtus; i++ )

{

cout << uus_asi [ i ] .Esiteks << ' '

<< uus_asi [ i ] .teiseks << endl;

}

tagasi 0 ;

}

Väljund:

Siin kuvatakse paaride sorteeritud vektor ja sorteerimine toimub vastavalt paaride teistele väärtustele. Paaride teine ​​element salvestatakse kasvavas järjekorras ja kuvatakse siin.

Järeldus

See juhend käsitleb C++ paaride sortimisvektorit. Uurisime 'paaride vektorit' ilma sortimata, samuti sorteerisime 'paaride vektorit' kasvavas ja kahanevas järjekorras. Illustreerisime seda näidetega, milles sorteerime “paaride vektori” nende paaride esimese ja teise numbri järgi C++ programmeerimises. Saime teada, et sortimise meetod aitab seda sorteerida.