Сортировка вектора в C ++

Опубликовано: 30 Декабря, 2021

Предварительные требования: std :: sort в C ++, вектор в C ++, инициализация вектора в C ++.

// C++ program to sort a vector in non-decreasing
// order.
#include <bits/stdc++.h>
using namespace std;
int main()
{
vector< int > v{ 1, 5, 8, 9, 6, 7, 3, 4, 2, 0 };
sort(v.begin(), v.end());
cout << "Sorted " ;
for ( auto x : v)
cout << x << " " ;
return 0;
}

Выход :

 Отсортировано 
0 1 2 3 4 5 6 7 8 9

Как отсортировать по убыванию?
sort () принимает третий параметр, который используется для указания порядка сортировки элементов. Мы можем передать функцию «больше ()» для сортировки в порядке убывания. Эта функция выполняет сравнение таким образом, что перед ним ставится больший элемент.

// C++ program to sort a vector in non-increasing
// order.
#include <bits/stdc++.h>
using namespace std;
int main()
{
vector< int > v{ 1, 5, 8, 9, 6, 7, 3, 4, 2, 0 };
sort(v.begin(), v.end(), greater< int >());
cout << "Sorted " ;
for ( auto x : v)
cout << x << " " ;
return 0;
}

Выход :

 Отсортировано 
9 8 7 6 5 4 3 2 1 0

Как отсортировать в определенном порядке?
Мы также можем написать нашу собственную функцию компаратора и передать ее в качестве третьего параметра.

// A C++ program to sort vector using
// our own comparator
#include <bits/stdc++.h>
using namespace std;
// An interval has start time and end time
struct Interval {
int start, end;
};
// Compares two intervals according to staring times.
bool compareInterval(Interval i1, Interval i2)
{
return (i1.start < i2.start);
}
int main()
{
vector<Interval> v { { 6, 8 }, { 1, 9 }, { 2, 4 }, { 4, 7 } };
// sort the intervals in increasing order of
// start time
sort(v.begin(), v.end(), compareInterval);
cout << "Intervals sorted by start time : " ;
for ( auto x : v)
cout << "[" << x.start << ", " << x.end << "] " ;
return 0;
}

Выход :

 Интервалы, отсортированные по времени начала: 
[1, 9] [2, 4] [4, 7] [6, 8]

Статьи по Теме :
Сортировка вектора пар | Комплект 1
Сортировка вектора пар | Комплект 2

Хотите узнать о лучших видео и практических задачах, ознакомьтесь с базовым курсом C ++ для базового и продвинутого уровня C ++ и курсом C ++ STL для базового уровня плюс STL. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .



C++