std::forward_list<T,Allocator>:: sort
|
void
sort
(
)
;
|
(1) |
(начиная с C++11)
(constexpr начиная с C++26) |
|
template
<
class
Compare
>
void sort ( Compare comp ) ; |
(2) |
(начиная с C++11)
(constexpr начиная с C++26) |
Сортирует элементы и сохраняет порядок эквивалентных элементов. Если возникает исключение, порядок элементов в * this не определён.
Никакие ссылки или итераторы не становятся недействительными.
СодержаниеПараметры
СложностьДано N как std:: distance ( begin ( ) , end ( ) ) :
1)
Приблизительно
N·log(N)
сравнений с использованием
operator
<
.
2)
Приблизительно
N·log(N)
применений функции сравнения
comp
.
Примечания
std::sort
требует итераторов произвольного доступа и поэтому не может использоваться с
ПримерЗапустить этот код #include <functional>
#include <iostream>
#include <forward_list>
std::ostream& operator<<(std::ostream& ostr, const std::forward_list<int>& list)
{
for (const int i : list)
ostr << ' ' << i;
return ostr;
}
int main()
{
std::forward_list<int> list{8, 7, 5, 9, 0, 1, 3, 2, 6, 4};
std::cout << "initially: " << list << '\n';
list.sort();
std::cout << "ascending: " << list << '\n';
list.sort(std::greater<int>());
std::cout << "descending:" << list << '\n';
}
Вывод: initially: 8 7 5 9 0 1 3 2 6 4
ascending: 0 1 2 3 4 5 6 7 8 9
descending: 9 8 7 6 5 4 3 2 1 0
Смотрите также
| |||||||||||