C++ Kārtot pāru vektoru

C Kartot Paru Vektoru



C++ nodrošina iespēju parādīt pāru vektoru un kārtot pāru vektorus. C++ valodā ir konteiners, kurā ir divas vērtības, kas ir kartētas viena ar otru, ko sauc par 'pāri' un 'pāru vektoru', kas ir vektors, kurā ir daudzi no šiem pāriem. Kārtošana nozīmē datu sakārtošanu augošā vai dilstošā secībā atbilstoši prasībām. Šeit mēs uzzināsim, kā kārtot pāru vektoru C++ programmēšanā. Mēs varam kārtot pāru vektoru gan “augošā”, gan “dilstošā” secībā C++. Mēs varam viegli kārtot pāru vektoru, izmantojot metodi “kārtot ()”. Šeit veiksim dažus kodus, lai sakārtotu pāru vektoru.

1. piemērs:

Sāksim kodu, iekļaujot šeit galvenes failu, kas ir “bits/stdc++.h”. Pēc šī galvenes faila mums nav jāiekļauj vairāk galvenes failu, jo tajā ir visas nepieciešamās bibliotēkas. Pēc tam mēs pievienojam nosaukumvietu “std” un izsaucam funkciju “main()”.







Tagad mēs deklarējam “pāru vektoru” ar nosaukumu “my_vect” un ievietojam datu tipu “int”, lai dati, ko ievadām šajos pāros, būtu “vesels skaitlis”. Zem tā mēs inicializējam divus masīvus ar nosaukumiem “my_arr1[]” un “my_arr2[]”. Šeit mēs inicializējam pāru pirmo un otro vērtību ar šīm masīva vērtībām. Pēc tam mēs izmantojam cilpu “for”, lai ievadītu šīs vērtības pāru vektorā. Šeit mēs izmantojam funkciju “push_back()”, kas palīdz ievietot vērtības vektora beigās. Šajā funkcijā mēs ievietojam opciju “make_pair”, kas tiek izmantota, lai izveidotu pāra objektu no divām vērtībām “my_arr1” un “my_arr2”.



Pēc tam mēs izdrukājam pāru vektoru, vēlreiz izmantojot cilpu “for”. Šeit tiek pievienoti “pirmais” un “otrais” atslēgvārdi, lai iegūtu pāru vektora pirmo un otro vērtību. Tas izdrukā pāru vektoru bez šķirošanas šeit. Tagad mēs izmantojam funkciju “sort()”, lai kārtotu pāru vektoru. Šeit tiek izmantotas funkcijas “begin ()” un “end ()”, kā pāru vektora sākums un beigas nodotas šai funkcijai “kārtot ()”.



Pēc šķirošanas mēs vēlreiz izdrukājam pāru vektoru, izmantojot “cout”, un pirmo un otro atslēgvārdu ievietojam ar “my_vec[i]”. Tagad šeit tiek izdrukāts arī sakārtotais pāru vektors.





1. kods:

#include

izmantojot namespace std;

int galvenais ( )

{

vektors < pāri < tu, tu > > mans_vects;

int my_arr1 [ ] = { 49 , divdesmit , piecpadsmit , 56 } ;

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

int num = izmērs ( mans_arr1 ) / izmērs ( mans_arr1 [ 0 ] ) ;

priekš ( starpt i = 0 ; i < vai i++ )

my_vect.push_back ( make_pair ( mans_arr1 [ i ] ,mans_arr2 [ i ] ) ) ;

cout << 'Pirms kārtot pāru vektoru:' << endl;

priekš ( starpt i = 0 ; i < vai i++ )

{

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

<< my_vect [ i ] .otrais << endl;

}

kārtot ( my_vect.begin ( ) , my_vect.end ( ) ) ;

cout << ' \n Pēc pāru vektora šķirošanas: ' << endl ;

priekš ( starpt i = 0 ; i < vai i++ )

{

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

<< my_vect [ i ] .otrais << endl;

}

atgriezties 0 ;

}



Izvade:

Vispirms tiek parādīts pāru vektors pirms kārtošanas. Pēc tam šim pāru vektoram mēs izmantojam šķirošanas paņēmienu. Pēc tam šeit tiek parādīts arī sakārtotais pāru vektors. Mēs redzam, ka pāru vektors ir sakārtots augošā secībā, pamatojoties uz pāra pirmo elementu.

2. piemērs:

Šajā piemērā mēs tagad izveidojam “pāru vektoru” ar nosaukumu “vector_1” un piešķiram datu tipu “int”, kas nozīmē, ka informācija, ko ievadām šajos pāros, ir “vesela skaitļa” datu tips. Tālāk ir inicializēti divi masīvi ar nosaukumiem “first_arr[]” un “second_arr[]”. Šeit mēs inicializējam šo masīvu vērtības pirmā un otrā pāra vērtībām.

Tālāk mēs ievadām šīs vērtības pāru vektorā, izmantojot cilpu “for”. Opcija “make_pair”, ko izmanto, lai ģenerētu divu vērtību pāra objektu no masīviem “first_arr[]” un “second_arr[]”, tiek ievietota metodē “push_back()”, kas palīdz ievietot vienumus vektora beigas.

Tālāk mēs vēlreiz izmantojam cilpu “for”, lai izvadītu pāru vektoru. Lai iegūtu pāru vektora pirmo un otro vērtību, tiek ievietoti atslēgvārdi “pirmais” un “otrais”. Tas izvada pāra vektoru bez šķirošanas šajā brīdī. Tagad mēs sakārtojam “pāru vektoru”, izmantojot funkciju “kārtot ()” dilstošā secībā. Šajā funkcijā mēs ievietojam funkcijas “rbegin()” un “rend()”, lai tā mainītu kārtošanu un sāktu no pāra vērtību beigām. Tas sakārto tos dilstošā secībā.

Pēc kārtošanas mēs izmantojam “cout”, lai izvadītu pāru vektoru pēc cilpas “for” atkārtotas izmantošanas, ievietojot pirmo un otro atslēgvārdu ar “vector_1[i]” laukā “cout”. Šeit tiek izdrukāts arī pāru sakārtotais vektors.

2. kods:

#include

izmantojot namespace std;

int galvenais ( )

{

vektors < pāri < tu, tu > > vektors_1;

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

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

int s = izmērs ( pirmais_arr ) / izmērs ( pirmais_arr [ 0 ] ) ;

priekš ( int i = 0 ; i < s; i++ )

vector_1.push_back ( make_pair ( pirmais_arr [ i ] , otrais_arr [ i ] ) ) ;

cout << 'Pirms šķirošanas:' << endl;

priekš ( int i = 0 ; i < s; i++ ) {

cout << vektors_1 [ i ] .vispirms << ' ' << vektors_1 [ i ] .otrais

<< endl;

}

kārtot ( vektors_1.rbegin ( ) , vektors_1.rend ( ) ) ;

cout << endl << 'Pēc šķirošanas:' << endl;

priekš ( int i = 0 ; i < s; i++ ) {

cout << vektors_1 [ i ] .vispirms << ' ' << vektors_1 [ i ] .otrais

<< endl;

}

atgriezties 0 ;

}

Izvade:

Šeit vispirms tiek parādīts pāru iepriekšējas kārtošanas vektors, pēc tam pāru sakārtotais vektors, kas tāpat tiek parādīts šeit pēc tam, kad tam ir piemērots kārtošanas process. Kā redzam, katra pāra sākotnējais elements nosaka, kā pāru vektors tiek sakārtots dilstošā secībā.

3. piemērs:

Šeit mēs izveidojam “bool” tipa funkciju ar nosaukumu “sortBySecElement”, lai kārtotu vektoru numurus. Šajā funkcijā mēs ievietojam nosacījumu “vērtība1.sekunde < vērtība2.sekunde”, kas salīdzina abu pāru vektoru otrās vērtības un atgriež skaitļus.

Pēc tam tālāk tiek izsaukts “main()”, kur mēs izveidojam pāru vektoru. Tālāk tiek inicializēti divi masīvi ar nosaukumu “new_array1[]” un “new_aray2[]”. Šeit mēs ievietojam pāru vērtības šajos masīvos. Tālāk mēs izmantojam cilpu “for”, lai ievadītu šīs vērtības pāru vektorā. Metodes “push_back()” ietvaros, kas palīdz ievietot vienumus vektora beigās, ir opcija “make_pair”, kas tiek izmantota, lai izveidotu divu vērtību pāra objektu no “new_array1[]” un “new_array2[ ]” masīvi.

Pēc tam mēs izvadām pāru vektoru, izmantojot citu “for” cilpu. Atslēgvārdi “pirmais” un “otrais” tiek ievietoti, lai iegūtu pāru vektora pirmo un otro vērtību. Šajā posmā šķirošana netiek veikta, un tiek izvadīts pāra vektors. Tagad mēs izmantojam funkciju “sort()”, lai to kārtotu. Pāru vektora sākums un beigas šajā gadījumā tiek piegādāti funkcijai “sort()”, izmantojot funkcijas “begin ()” un “end ()”. Mēs arī ievietojam funkciju “sortBySecElement”, kuru mēs iepriekš izveidojām šajā funkcijā “sort()”, kur mēs iestatām pāru kārtošanas vektoru modeli no vektora otrā elementa augošā secībā.

Tagad mēs atkal izmantojam cilpu “for”. Pēc tam pirmais un otrais atslēgvārds tiek ievietots ar “new_vec[i]” laukā “cout”, lai pēc šķirošanas atkal izveidotu pāru vektoru. Šeit tagad tiek izdrukāts arī pāru sakārtotais vektors augošā secībā.

3. kods:

#include

izmantojot namespace std;

bool sortBySecElement ( const pāris < tu, tu > & vērtība1,

const pāris < tu, tu > & vērtība2 )

{

atgriezties ( vērtība1.sekunde < vērtība2.sekunde ) ;

}

int galvenais ( )

{

vektors < pāri < tu, tu > > jauna_lieta

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

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

int vērtība = izmērs ( jauns_arr1 ) / izmērs ( jauns_arr1 [ 0 ] ) ;

priekš ( starpt i = 0 ; i < vērtība; i++ )

new_vec.push_back ( make_pair ( jauns_arr1 [ i ] ,jauns_arr2 [ i ] ) ) ;

cout << 'Pirms šķirošanas:' << endl ;

priekš ( starpt i = 0 ; i < vērtība; i++ )

{

cout << jauna_lieta [ i ] .vispirms << ' '

<< jauna_lieta [ i ] .otrais << endl;

}

kārtot ( new_vec.begin ( ) , new_vec.end ( ) , kārtotBySecElement ) ;

cout << endl << 'Pēc šķirošanas:' << endl ;

priekš ( starpt i = 0 ; i < vērtība; i++ )

{

cout << jauna_lieta [ i ] .vispirms << ' '

<< jauna_lieta [ i ] .otrais << endl;

}

atgriezties 0 ;

}

Izvade:

Šeit tiek parādīts sakārtotais pāru vektors, un kārtošana tiek veikta atbilstoši pāru otrajām vērtībām. Otrais pāru elements tiek saglabāts augošā secībā un parādīts šeit.

Secinājums

Šī rokasgrāmata ir par “pāru kārtošanas vektoru” valodā C++. Mēs izpētījām “pāru vektoru” bez šķirošanas, kā arī sakārtojām “pāru vektoru” augošā un dilstošā secībā. Mēs to ilustrējām ar piemēriem, kuros mēs sakārtojam “pāru vektorus” pēc šo pāru pirmā un otrā numura C++ programmēšanā. Mēs uzzinājām, ka “kārtot()” metode palīdz veikt šo šķirošanu.