C++ Сортиране на вектор от двойки

C Sortirane Na Vektor Ot Dvojki



C++ предоставя възможност за показване на вектора от двойки и сортиране на вектора от двойки. Има контейнер в C++, който съдържа две стойности, които са съпоставени една с друга, наречени „двойка“ и „вектор от двойки“, който е вектор, в който има много от тези двойки. Сортирането означава подреждане на данните във възходящ или низходящ ред според изискванията. Тук ще научим как да сортираме вектора от двойки в програмирането на C++. Можем да сортираме вектора от двойки както във „възходящ“, така и в „низходящ“ ред в C++. Можем лесно да сортираме вектора от двойки, като използваме метода „sort()“. Нека да направим някои кодове тук, за да сортираме вектора от двойки.

Пример 1:

Нека започнем кода, като включим заглавния файл тук, който е 'bits/stdc++.h'. След като имаме този заглавен файл, не е необходимо да включваме повече заглавни файлове, тъй като той съдържа всички необходими библиотеки. След това добавяме пространството от имена „std“ и извикваме функцията „main()“.







Сега декларираме „вектор от двойки“, наречен „my_vect“, и поставяме типа данни „int“, така че данните, които въвеждаме в тези двойки, са типът данни „integer“. Под това инициализираме два масива с имената “my_arr1[]” и “my_arr2[]”. Тук инициализираме първата и втората стойност на двойките с тези стойности на масива. След това използваме цикъла „for“, за да въведем тези стойности във вектора на двойките. Тук използваме функцията „push_back()“, която помага при вмъкване на стойностите в края на вектора. Вътре в тази функция поставяме опцията „make_pair“, която се използва за конструиране на двойния обект от две стойности на „my_arr1“ и „my_arr2“.



След това отпечатваме вектора на двойките, като отново използваме цикъла „for“. Тук „първата“ и „втората“ ключови думи се добавят, за да се получат първата и втората стойност на вектора от двойки. Това отпечатва вектора на двойките без сортиране тук. Сега използваме функцията 'sort()', за да сортираме вектора от двойки. Тук се използват функциите „begin()“ и „end()“, тъй като началният и крайният вектор на двойките са предадени на тази функция „sort()“.



След сортиране, ние отпечатваме отново вектора на двойките, като използваме „cout“ и поставяме първата и втората ключова дума с „my_vec[i]“. Сега сортираният вектор от двойки също се отпечатва тук.





Код 1:

#include

използване на пространство от имена std;

int main ( )

{

вектор < двойка < ти, ти > > my_vect;

int my_arr1 [ ] = { 49 , двадесет , петнадесет , 56 } ;

int my_arr2 [ ] = { 37 , двадесет , 90 , 55 } ;

int num = sizeof ( my_arr1 ) / размер на ( my_arr1 [ 0 ] ) ;

за ( вътр i = 0 ; i < дали i++ )

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

cout << 'Преди сортиране на вектор от двойки: ' << endl;

за ( вътр i = 0 ; i < дали i++ )

{

cout << my_vect [ i ] .първо << ' '

<< my_vect [ i ] .второ << endl;

}

вид ( my_vect.begin ( ) , my_vect.end ( ) ) ;

cout << ' След сортиране на вектор от двойки: ' << endl;

за ( вътр i = 0 ; i < дали i++ )

{

cout << my_vect [ i ] .първо << ' '

<< my_vect [ i ] .второ << endl;

}

връщане 0 ;

}



Изход:

Първо се показва векторът на двойките преди сортирането. След това прилагаме техниката на сортиране върху този вектор от двойки. След това тук се показва и сортираният вектор от двойки. Можем да видим, че векторът от двойки е сортиран във възходящ ред въз основа на първия елемент от двойката.

Пример 2:

В този пример сега създаваме „вектор от двойки“, наречен „vector_1“ и присвояваме тип данни „int“, което означава, че информацията, която въвеждаме в тези двойки, е от тип данни „integer“. Два масива с имената “first_arr[]” и “second_arr[]” се инициализират по-долу. Тук ние инициализираме стойностите на тези масиви за стойностите на първата и втората двойка.

След това въвеждаме тези стойности във вектора на двойките, като използваме цикъла „за“. Опцията „make_pair“, която се използва за генериране на обект двойка от две стойности от масивите „first_arr[]“ и „second_arr[]“, се поставя в метода „push_back()“, който помага за вмъкване на елементите в край на вектора.

След това използваме цикъла „for“ още веднъж, за да изведем вектора на двойките. За да се получат първата и втората стойност на вектора от двойки, се вмъкват ключовите думи „първи“ и „втори“. Това извежда двойния вектор без никакво сортиране в тази точка. Сега сортираме „вектора от двойки“, като използваме функция „sort()“ в низходящ ред. В тази функция поставяме функциите „rbegin()“ и „rend()“, така че тя ще обърне сортирането и ще започне от края на стойностите на двойката. Подрежда ги в низходящ ред.

След сортирането използваме „cout“, за да изведем вектора на двойките, след като отново използваме цикъла „for“, вмъквайки първата и втората ключови думи с „vector_1[i]“ в „cout“. Тук също се отпечатва сортираният вектор на двойките.

Код 2:

#include

използване на пространство от имена std;

int main ( )

{

вектор < двойка < ти, ти > > вектор_1;

int first_arr [ ] = { 77 , 29 , 97 , петнадесет } ;

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

int s = sizeof ( first_arr ) / размер на ( first_arr [ 0 ] ) ;

за ( int i = 0 ; i < с; i++ )

вектор_1.натискане_назад ( make_pair ( first_arr [ i ] , втори_арр [ i ] ) ) ;

cout << „Преди сортиране:“ << endl;

за ( int i = 0 ; i < с; i++ ) {

cout << вектор_1 [ i ] .първо << ' ' << вектор_1 [ i ] .второ

<< endl;

}

вид ( вектор_1.begin ( ) , вектор_1.ренд ( ) ) ;

cout << endl << „След сортиране:“ << endl;

за ( int i = 0 ; i < с; i++ ) {

cout << вектор_1 [ i ] .първо << ' ' << вектор_1 [ i ] .второ

<< endl;

}

връщане 0 ;

}

Изход:

Векторът за предварително сортиране на двойките е показан тук първо, последван от сортирания вектор на двойките, който също е показан тук, след като процесът на сортиране е приложен към него. Както виждаме, началният елемент на всяка двойка определя как векторът от двойки е сортиран в низходящ ред.

Пример 3:

Тук създаваме функция от тип „bool“, наречена „sortBySecElement“, за сортиране на векторните числа. В тази функция поставяме условие „value1.second < value2.second“, което сравнява вторите стойности на двата вектора от двойки и връща числата.

След това „main()“ се извиква по-долу, където създаваме вектор от двойки. Следното инициализира два масива, наречени “new_array1[]” и “new_aray2[]”. Тук вмъкваме стойностите на двойки в тези масиви. След това използваме цикъла „for“, за да въведем тези стойности във вектора на двойките. Вътре в метода „push_back()“, който помага при вмъкването на елементите в края на вектора, е опцията „make_pair“, която се използва за създаване на обект двойка от две стойности от „new_array1[]“ и „new_array2[ ]” масиви.

След това извеждаме вектора на двойките, използвайки друг цикъл „for“. Ключовите думи „първа“ и „втора“ се вмъкват, за да се получат първата и втората стойност на вектора от двойки. На този етап не се извършва сортиране и се извежда двойният вектор. Сега използваме функцията 'sort()', за да го сортираме. Началото и краят на вектора от двойки се предоставят на функцията „sort()“ в този случай чрез използването на функциите „begin()“ и „end()“. Също така поставяме функцията „sortBySecElement“, която преди това създадохме, в тази функция „sort()“, където задаваме модела за сортиране на вектор на двойки от втория елемент на вектора във възходящ ред.

Сега отново използваме цикъла „for“. След това първата и втората ключова дума се вмъкват с “new_vec[i]” в “cout”, за да се създаде отново векторът от двойки след сортиране. Тук също се отпечатва сортираният вектор на двойките във възходящ ред.

Код 3:

#include

използване на пространство от имена std;

bool sortBySecElement ( const двойка < ти, ти > и стойност1,

const двойка < ти, ти > и стойност2 )

{

връщане ( стойност1.втора < стойност2.второ ) ;

}

int main ( )

{

вектор < двойка < ти, ти > > ново_нещо

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

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

int стойност = sizeof ( new_arr1 ) / размер на ( new_arr1 [ 0 ] ) ;

за ( вътр i = 0 ; i < стойност; i++ )

new_vec.push_back ( make_pair ( new_arr1 [ i ] ,нов_арр2 [ i ] ) ) ;

cout << „Преди сортиране:“ << endl;

за ( вътр i = 0 ; i < стойност; i++ )

{

cout << ново_нещо [ i ] .първо << ' '

<< ново_нещо [ i ] .второ << endl;

}

вид ( new_vec.begin ( ) , new_vec.end ( ) , sortBySecElement ) ;

cout << endl << „След сортиране:“ << endl;

за ( вътр i = 0 ; i < стойност; i++ )

{

cout << ново_нещо [ i ] .първо << ' '

<< ново_нещо [ i ] .второ << endl;

}

връщане 0 ;

}

Изход:

Тук се показва сортираният вектор от двойки и сортирането се извършва според вторите стойности на двойките. Вторият елемент от двойки се съхранява във възходящ ред и се показва тук.

Заключение

Това ръководство е изцяло за „сортиращия вектор на двойки“ в C++. Изследвахме „вектора на двойките“ без сортиране, както и сортирахме „вектора на двойките“ във възходящ и низходящ ред. Илюстрирахме това с примерите, в които сортираме „вектора от двойки“ според първото и второто число на тези двойки в програмирането на C++. Научихме, че методът „sort()“ помага при това сортиране.