C++ třídit vektor párů

C Tridit Vektor Paru



C++ poskytuje možnost zobrazit vektor párů a třídit vektor párů. V C++ existuje kontejner, který obsahuje dvě hodnoty, které jsou namapovány na sebe, nazývané „pár“ a „vektor párů“, což je vektor, který má v sobě mnoho těchto párů. Třídění znamená seřadit data vzestupně nebo sestupně podle požadavků. Zde se naučíme, jak třídit vektor párů v programování v C++. Vektor párů můžeme v C++ seřadit ve „vzestupném“ i „sestupném“ pořadí. Vektor párů můžeme snadno třídit pomocí metody „sort()“. Udělejme zde nějaké kódy pro třídění vektoru párů.

Příklad 1:

Začněme kód vložením hlavičkového souboru, který je „bits/stdc++.h“. Poté, co máme tento soubor záhlaví, nemusíme zahrnout další soubory záhlaví, protože obsahuje všechny potřebné knihovny. Poté přidáme jmenný prostor „std“ a zavoláme funkci „main()“.







Nyní deklarujeme „vektor párů“ s názvem „my_vect“ a vložíme datový typ „int“, takže data, která do těchto párů zadáme, jsou datovým typem „integer“. Pod tím inicializujeme dvě pole s názvy „my_arr1[]“ a „my_arr2[]“. Zde inicializujeme první a druhou hodnotu párů těmito hodnotami pole. Poté použijeme cyklus „for“ k zadání těchto hodnot do vektoru párů. Zde používáme funkci „push_back()“, která pomáhá při vkládání hodnot na konec vektoru. Uvnitř této funkce umístíme volbu „make_pair“, která se používá ke konstrukci objektu pair ze dvou hodnot „my_arr1“ a „my_arr2“.



Poté vytiskneme vektor párů opět použitím smyčky „for“. Zde jsou přidána klíčová slova „první“ a „druhá“, aby se získaly první a druhé hodnoty vektoru párů. Toto vytiskne vektor párů bez řazení zde. Nyní použijeme funkci „sort()“ k třídění vektoru párů. Zde jsou funkce „begin()“ a „end()“ použity jako předání začátku a konce vektoru párů této funkci „sort()“.



Po třídění vytiskneme vektor párů znovu pomocí „cout“ a první a druhé klíčové slovo umístíme s „my_vec[i]“. Nyní je zde vytištěn i setříděný vektor dvojic.





Kód 1:

#include

pomocí jmenného prostoru std;

int main ( )

{

vektor < pár < ty, ty > > my_vect;

int my_arr1 [ ] = { 49 , dvacet , patnáct , 56 } ;

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

int num = velikost ( můj_arr1 ) / velikost ( můj_arr1 [ 0 ] ) ;

pro ( int i = 0 ; i < zda i++ )

my_vect.push_back ( make_pair ( můj_arr1 [ i ] ,my_arr2 [ i ] ) ) ;

cout << 'Před tříděním vektoru párů:' << endl;

pro ( int i = 0 ; i < zda i++ )

{

cout << my_vect [ i ] .První << ''

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

}

seřadit ( my_vect.begin ( ) , my_vect.end ( ) ) ;

cout << ' \n Po seřazení vektoru párů: ' << endl;

pro ( int i = 0 ; i < zda i++ )

{

cout << my_vect [ i ] .První << ''

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

}

vrátit se 0 ;

}



Výstup:

Nejprve se zobrazí vektor párů před řazením. Poté na tento vektor párů aplikujeme techniku ​​třídění. Poté se zde také zobrazí setříděný vektor dvojic. Vidíme, že vektor párů je řazen vzestupně na základě prvního prvku páru.

Příklad 2:

V tomto příkladu nyní vytvoříme „vektor párů“ nazvaný „vektor_1“ a přiřadíme datový typ „int“, což znamená, že informace, které do těchto párů zadáme, jsou datového typu „integer“. V následujícím jsou inicializována dvě pole s názvy „first_arr[]“ a „second_arr[]“. Zde inicializujeme hodnoty těchto polí pro hodnoty prvního a druhého páru.

Dále tyto hodnoty zadáme do vektoru párů pomocí smyčky „for“. Možnost „make_pair“, která se používá ke generování objektu páru dvou hodnot z polí „first_arr[]“ a „second_arr[]“, je umístěna uvnitř metody „push_back()“, která pomáhá vkládat položky na konec vektoru.

Dále použijeme smyčku „for“ ještě jednou pro výstup vektoru párů. Pro získání první a druhé hodnoty vektoru párů se vloží klíčová slova „první“ a „druhá“. To vypíše párový vektor bez jakéhokoli třídění v tomto bodě. Nyní seřadíme „vektor párů“ pomocí funkce „sort()“ v sestupném pořadí. Do této funkce umístíme funkce „rbegin()“ a „rend()“, takže obrátí řazení a začne od konce hodnot páru. Uspořádá je v sestupném pořadí.

Po třídění použijeme „cout“ pro výstup vektoru párů po opětovném použití cyklu „for“ a vložení prvního a druhého klíčového slova s ​​„vector_1[i]“ do „cout“. Zde se také vytiskne seřazený vektor párů.

Kód 2:

#include

pomocí jmenného prostoru std;

int main ( )

{

vektor < pár < ty, ty > > vektor_1;

int first_arr [ ] = { 77 , 29 , 97 , patnáct } ;

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

int s = sizeof ( first_arr ) / velikost ( first_arr [ 0 ] ) ;

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

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

cout << 'Před řazením:' << endl;

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

cout << vektor_1 [ i ] .První << '' << vektor_1 [ i ] .druhý

<< endl;

}

seřadit ( vektor_1.začátek ( ) , vektor_1.rend ( ) ) ;

cout << endl << 'Po třídění:' << endl;

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

cout << vektor_1 [ i ] .První << '' << vektor_1 [ i ] .druhý

<< endl;

}

vrátit se 0 ;

}

Výstup:

Nejprve je zde zobrazen vektor předřazeného třídění párů, následovaný vektorem třídění párů, který je zde rovněž zobrazen poté, co je na něj aplikován proces třídění. Jak vidíme, počáteční prvek každého páru určuje, jak je vektor párů seřazen v sestupném pořadí.

Příklad 3:

Zde vytvoříme funkci typu „bool“ s názvem „sortBySecElement“ pro třídění vektorových čísel. V této funkci umístíme podmínku „hodnota1.sekunda < hodnota2.sekunda“, která porovná druhé hodnoty obou vektorů párů a vrátí čísla.

Poté se v následujícím vyvolá „main()“, kde vytvoříme vektor párů. Následující inicializuje dvě pole s názvem „new_array1[]“ a „new_aray2[]“. Zde vložíme hodnoty párů do těchto polí. Dále použijeme smyčku „for“ k zadání těchto hodnot do vektoru párů. Uvnitř metody „push_back()“, která pomáhá při vkládání položek na konec vektoru, je možnost „make_pair“, která se používá k vytvoření objektu páru dvou hodnot z „new_array1[]“ a „new_array2[ ]“.

Poté vydáme vektor párů pomocí další smyčky „for“. Klíčová slova „první“ a „druhá“ jsou vložena pro získání první a druhé hodnoty vektoru párů. V této fázi se neprovádí žádné třídění a je vydán párový vektor. Nyní použijeme funkci „sort()“ k seřazení. Začátek a konec vektoru párů je v tomto případě poskytnut funkci „sort()“ pomocí funkcí „begin()“ a „end()“. Umístíme také funkci „sortBySecElement“, kterou jsme dříve vytvořili, do této funkce „sort()“, kde nastavujeme vzor třídícího vektoru párů od druhého prvku vektoru ve vzestupném pořadí.

Nyní opět použijeme smyčku „for“. Poté se první a druhé klíčové slovo vloží s „new_vec[i]“ do „cout“, aby se po třídění znovu vytvořil vektor párů. Zde se také vytiskne seřazený vektor párů ve vzestupném pořadí.

Kód 3:

#include

pomocí jmenného prostoru std;

bool sortBySecElement ( konst pár < ty, ty > & hodnota1,

konst pár < ty, ty > & hodnota2 )

{

vrátit se ( hodnota1.sekunda < hodnota2.sekunda ) ;

}

int main ( )

{

vektor < pár < ty, ty > > new_věc

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

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

int hodnota = sizeof ( new_arr1 ) / velikost ( new_arr1 [ 0 ] ) ;

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

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

cout << 'Před řazením:' << endl;

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

{

cout << new_věc [ i ] .První << ''

<< new_věc [ i ] .druhý << endl;

}

seřadit ( new_vec.begin ( ) , new_vec.end ( ) , sortBySecElement ) ;

cout << endl << 'Po třídění:' << endl;

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

{

cout << new_věc [ i ] .První << ''

<< new_věc [ i ] .druhý << endl;

}

vrátit se 0 ;

}

Výstup:

Zde se zobrazí setříděný vektor párů a řazení se provede podle druhých hodnot párů. Druhý prvek párů je uložen ve vzestupném pořadí a zobrazen zde.

Závěr

Tato příručka je celá o „třídění vektoru párů“ v C++. Prozkoumali jsme „vektor párů“ bez třídění, stejně jako jsme seřadili „vektor párů“ ve vzestupném a sestupném pořadí. Ilustrovali jsme to na příkladech, ve kterých třídíme „vektor párů“ podle prvního a druhého čísla těchto párů v programování v C++. Zjistili jsme, že při tomto řazení pomáhá metoda „sort()“.