Сортировка вектора в 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 и многому другому, см. Полный курс подготовки к собеседованию .