(C++17) | ||||
| Sequence | ||||
(C++11) | ||||
(C++26) | ||||
(C++26) | ||||
(C++11) | ||||
| Associative | ||||
| Unordered associative | ||||
(C++11) | ||||
(C++11) | ||||
(C++11) | ||||
(C++11) | ||||
| Adaptors | ||||
(C++23) | ||||
(C++23) | ||||
(C++23) | ||||
(C++23) | ||||
| Views | ||||
(C++20) | ||||
(C++23) | ||||
| Tables | ||||
| Iterator invalidation | ||||
| Member function table | ||||
| Non-member function table |
| Member functions | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Non-member functions | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Deduction guides(C++17) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
void sort(); | (1) | (since C++11) (constexpr since C++26) |
template<class Compare> void sort( Compare comp); | (2) | (since C++11) (constexpr since C++26) |
Sorts the elements and preserves the order of equivalent elements. If an exception is thrown, the order of elements in*this is unspecified.
No references or iterators become invalidated.
Contents |
| comp | - | comparison function object (i.e. an object that satisfies the requirements ofCompare) which returns true if the first argument isless than (i.e. is orderedbefore) the second. The signature of the comparison function should be equivalent to the following: bool cmp(const Type1& a,const Type2& b); While the signature does not need to haveconst&, the function must not modify the objects passed to it and must be able to accept all values of type (possibly const) |
| Type requirements | ||
-Compare must meet the requirements ofCompare. | ||
Given\(\scriptsize N\)N asstd::distance(begin(), end()):
std::sort requires random access iterators and so cannot be used withforward_list. This function also differs fromstd::sort in that it does not require the element type of theforward_list to be swappable, preserves the values of all iterators, and performs a stable sort.
#include <functional>#include <iostream>#include <forward_list> std::ostream& operator<<(std::ostream& ostr,conststd::forward_list<int>& list){for(constint 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';}
Output:
initially: 8 7 5 9 0 1 3 2 6 4ascending: 0 1 2 3 4 5 6 7 8 9descending: 9 8 7 6 5 4 3 2 1 0
| reverses the order of the elements (public member function)[edit] |