C++ triediaci vektor párov

C Triediaci Vektor Parov



C++ poskytuje možnosť zobraziť vektor párov a triediť vektor párov. V C++ existuje kontajner, ktorý obsahuje dve hodnoty, ktoré sú navzájom mapované, nazývané „pár“ a „vektor párov“, čo je vektor, ktorý má v sebe veľa týchto párov. Triedenie znamená usporiadanie údajov vzostupne alebo zostupne podľa požiadaviek. Tu sa naučíme, ako triediť vektor párov v programovaní v C++. Vektor párov môžeme v C++ triediť vo „vzostupnom“ aj „zostupnom“ poradí. Vektor párov môžeme ľahko triediť pomocou metódy „sort()“. Urobme tu niekoľko kódov na triedenie vektora párov.

Príklad 1:

Začnime kód tým, že sem zahrnieme hlavičkový súbor, ktorý je „bits/stdc++.h“. Po tomto hlavičkovom súbore už nemusíme pridávať ďalšie hlavičkové súbory, pretože obsahuje všetky potrebné knižnice. Potom pridáme menný priestor „std“ a zavoláme funkciu „main()“.







Teraz deklarujeme „vektor párov“ s názvom „my_vect“ a vložíme dátový typ „int“, takže údaje, ktoré zadáme do týchto párov, sú dátovým typom „celé číslo“. Pod tým inicializujeme dve polia s názvami „my_arr1[]“ a „my_arr2[]“. Tu inicializujeme prvé a druhé hodnoty párov s týmito hodnotami poľa. Potom použijeme cyklus „for“ na zadanie týchto hodnôt do vektora párov. Tu používame funkciu „push_back()“, ktorá pomáha pri vkladaní hodnôt na koniec vektora. Do tejto funkcie umiestnime možnosť „make_pair“, ktorá sa používa na vytvorenie objektu páru dvoch hodnôt „my_arr1“ a „my_arr2“.



Potom vytlačíme vektor párov opätovným využitím cyklu „for“. Tu sa pridajú kľúčové slová „prvé“ a „druhé“, aby sa získali prvé a druhé hodnoty vektora párov. Toto vytlačí vektor párov bez zoradenia. Teraz používame funkciu „sort ()“ na triedenie vektora párov. Tu sa používajú funkcie „začiatok()“ a „koniec ()“, ktoré odovzdajú začiatok a koniec vektora párov tejto funkcii „zoradiť ()“.



Po zoradení opäť vytlačíme vektor párov pomocou „cout“ a umiestnime prvé a druhé kľúčové slovo s „my_vec[i]“. Teraz sa tu vytlačí aj triedený vektor párov.





Kód 1:

#include

pomocou menného priestoru std;

int main ( )

{

vektor < pár < vy vy > > my_vect;

int my_arr1 [ ] = { 49 , dvadsať , pätnásť , 56 } ;

int my_arr2 [ ] = { 37 , dvadsať , 90 , 55 } ;

int num = veľkosť ( my_arr1 ) / veľkosť ( my_arr1 [ 0 ] ) ;

pre ( int i = 0 ; i < či i++ )

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

cout << 'Pred triedením vektora párov: ' << endl;

pre ( int i = 0 ; i < či i++ )

{

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

<< my_vect [ i ] .druhý << endl;

}

triediť ( my_vect.begin ( ) , my_vect.end ( ) ) ;

cout << ' \n Po zoradení vektora párov: ' << endl;

pre ( int i = 0 ; i < či i++ )

{

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

<< my_vect [ i ] .druhý << endl;

}

vrátiť 0 ;

}



Výkon:

Najprv sa zobrazí vektor párov pred zoradením. Potom na tento vektor párov aplikujeme techniku ​​triedenia. Potom sa tu zobrazí aj zoradený vektor párov. Vidíme, že vektor párov je zoradený vzostupne na základe prvého prvku páru.

Príklad 2:

V tomto príklade teraz vytvoríme „vektor párov“ s názvom „vektor_1“ a priradíme dátový typ „int“, čo znamená, že informácie, ktoré do týchto párov zadáme, sú dátového typu „celé číslo“. V nasledujúcom sú inicializované dve polia s názvami „first_arr[]“ a „second_arr[]“. Tu inicializujeme hodnoty týchto polí pre hodnoty prvého a druhého páru.

Ďalej tieto hodnoty zadáme do vektora párov pomocou cyklu „for“. Voľba „make_pair“, ktorá sa používa na generovanie objektu páru dvoch hodnôt z polí „first_arr[]“ a „second_arr[]“, je umiestnená v metóde „push_back()“, ktorá pomáha vkladať položky na koniec vektora.

Ďalej použijeme slučku „for“ ešte raz na výstup vektora párov. Na získanie prvej a druhej hodnoty vektora párov sa vložia kľúčové slová „prvý“ a „druhý“. Toto vygeneruje párový vektor bez akéhokoľvek triedenia v tomto bode. Teraz triedime „vektor párov“ pomocou funkcie „triediť ()“ v zostupnom poradí. V tejto funkcii umiestnime funkcie „rbegin()“ a „rend()“, takže obráti triedenie a začne od konca hodnôt páru. Usporiada ich v zostupnom poradí.

Po zoradení použijeme „cout“ na výstup vektora párov po opätovnom použití cyklu „for“, vložením prvého a druhého kľúčového slova s ​​„vector_1[i]“ do „cout“. Tu sa vytlačí aj triedený vektor párov.

Kód 2:

#include

pomocou menného priestoru std;

int main ( )

{

vektor < pár < vy vy > > vektor_1;

int first_arr [ ] = { 77 , 29 , 97 , pätnásť } ;

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

int s = veľkosť ( first_arr ) / veľkosť ( first_arr [ 0 ] ) ;

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

vector_1.push_back ( make_pair ( first_arr [ i ] , second_arr [ i ] ) ) ;

cout << 'Pred triedením:' << endl;

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

cout << vektor_1 [ i ] .najprv << '' << vektor_1 [ i ] .druhý

<< endl;

}

triediť ( vektor_1.začiatok ( ) , vector_1.rend ( ) ) ;

cout << endl << 'Po zoradení:' << endl;

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

cout << vektor_1 [ i ] .najprv << '' << vektor_1 [ i ] .druhý

<< endl;

}

vrátiť 0 ;

}

Výkon:

Najprv sa tu zobrazí vektor predbežného zoradenia párov, za ním nasleduje zoradený vektor párov, ktorý sa tu tiež zobrazí po aplikovaní procesu triedenia. Ako vidíme, počiatočný prvok každého páru určuje, ako je vektor párov zoradený v zostupnom poradí.

Príklad 3:

Tu vytvoríme funkciu typu „bool“ s názvom „sortBySecElement“ na triedenie vektorových čísel. V tejto funkcii zadáme podmienku „hodnota1.sekunda < hodnota2.sekunda“, ktorá porovnáva druhé hodnoty oboch vektorov párov a vracia čísla.

Potom sa v nasledujúcom vyvolá „main()“, kde vytvoríme vektor párov. Nasledujúce inicializuje dve polia s názvom „new_array1[]“ a „new_aray2[]“. Tu vložíme hodnoty párov do týchto polí. Ďalej použijeme cyklus „for“ na zadanie týchto hodnôt do vektora párov. Vo vnútri metódy „push_back()“, ktorá pomáha pri vkladaní položiek na koniec vektora, je možnosť „make_pair“, ktorá sa používa na vytvorenie objektu páru dvoch hodnôt z „new_array1[]“ a „new_array2[ ]“.

Potom vydáme vektor párov pomocou ďalšej slučky „for“. Kľúčové slová „prvý“ a „druhý“ sa vkladajú, aby sa získali prvé a druhé hodnoty vektora párov. V tejto fáze sa neuskutoční žiadne triedenie a na výstup sa dostane párový vektor. Teraz použijeme funkciu „sort()“ na zoradenie. Začiatok a koniec vektora párov je v tomto prípade dodaný do funkcie „sort()“ pomocou funkcií „begin()“ a „end()“. Do tejto funkcie „sort()“ umiestnime aj funkciu „sortBySecElement“, ktorú sme predtým vytvorili, kde nastavíme vzor triediaceho vektora párov z druhého prvku vektora vo vzostupnom poradí.

Teraz znova použijeme slučku „for“. Potom sa prvé a druhé kľúčové slovo vloží s „new_vec[i]“ do „cout“, aby sa po zoradení opäť vytvoril vektor párov. Tu sa teraz vytlačí zoradený vektor párov vo vzostupnom poradí.

Kód 3:

#include

pomocou menného priestoru std;

bool sortBySecElement ( konštantný pár < vy vy > & hodnota1,

konštantný pár < vy vy > & hodnota2 )

{

vrátiť ( hodnota1.sekunda < hodnota2.sekunda ) ;

}

int main ( )

{

vektor < pár < vy vy > > new_vec

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

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

int hodnota = sizeof ( new_arr1 ) / veľkosť ( new_arr1 [ 0 ] ) ;

pre ( int i = 0 ; i < hodnota; i++ )

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

cout << 'Pred triedením:' << endl;

pre ( int i = 0 ; i < hodnota; i++ )

{

cout << new_vec [ i ] .najprv << ''

<< new_vec [ i ] .druhý << endl;

}

triediť ( new_vec.begin ( ) , new_vec.end ( ) , sortBySecElement ) ;

cout << endl << 'Po zoradení:' << endl;

pre ( int i = 0 ; i < hodnota; i++ )

{

cout << new_vec [ i ] .najprv << ''

<< new_vec [ i ] .druhý << endl;

}

vrátiť 0 ;

}

Výkon:

Tu sa zobrazí zoradený vektor párov a zoradenie sa vykoná podľa druhých hodnôt párov. Druhý prvok párov sa ukladá vo vzostupnom poradí a zobrazuje sa tu.

Záver

Táto príručka je o „vektore triedenia párov“ v C++. Preskúmali sme „vektor párov“ bez triedenia, ako aj triedenie „vektora párov“ vo vzostupnom a zostupnom poradí. Ilustrovali sme to na príkladoch, v ktorých triedime „vektor párov“ podľa prvého a druhého čísla týchto párov v programovaní v C++. Dozvedeli sme sa, že pri tomto triedení pomáha metóda „sort()“.