CARVIEW |
Select Language
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Thu, 24 Jul 2025 23:37:24 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Location: /reference/forward_list/forward_list/sort/
HTTP/1.1 200 OK
Server: nginx
Date: Thu, 24 Jul 2025 23:37:25 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
ETag: W/"8718-njOosuI8AFYBMI5CkN506/at3Ow"
Content-Encoding: gzip
Sorts the elements in the forward_list, altering their position within the container.
The sorting is performed by applying an algorithm that uses either operator< (in version (1)) or comp (in version (2)) to compare elements. This comparison shall produce a strict weak ordering of the elements (i.e., a consistent transitive comparison, without considering its reflexiveness).
The resulting order of equivalent elements is stable: i.e., equivalent elements preserve the relative order they had before the call.
The entire operation does not involve the construction, destruction or copy of any element object. Elements are moved within the container.
Output:
All contained elements are accessed (but not modified). Concurrently iterating through the container is not safe.
It throws if the comparison or the moving operation of any element throws.
Reference
C library:
- <cassert> (assert.h)
- <cctype> (ctype.h)
- <cerrno> (errno.h)
-
<cfenv> (fenv.h)C++11
- <cfloat> (float.h)
-
<cinttypes> (inttypes.h)C++11
- <ciso646> (iso646.h)
- <climits> (limits.h)
- <clocale> (locale.h)
- <cmath> (math.h)
- <csetjmp> (setjmp.h)
- <csignal> (signal.h)
- <cstdarg> (stdarg.h)
-
<cstdbool> (stdbool.h)C++11
- <cstddef> (stddef.h)
-
<cstdint> (stdint.h)C++11
- <cstdio> (stdio.h)
- <cstdlib> (stdlib.h)
- <cstring> (string.h)
-
<ctgmath> (tgmath.h)C++11
- <ctime> (time.h)
-
<cuchar> (uchar.h)C++11
- <cwchar> (wchar.h)
- <cwctype> (wctype.h)
Containers:
-
<array>C++11
- <deque>
-
<forward_list>C++11
- <list>
- <map>
- <queue>
- <set>
- <stack>
-
<unordered_map>C++11
-
<unordered_set>C++11
- <vector>
-
Input/Output:
Multi-threading:
-
<atomic>C++11
-
<condition_variable>C++11
-
<future>C++11
-
<mutex>C++11
-
<thread>C++11
-
Other:
- <algorithm>
- <bitset>
-
<chrono>C++11
-
<codecvt>C++11
- <complex>
- <exception>
- <functional>
-
<initializer_list>C++11
- <iterator>
- <limits>
- <locale>
- <memory>
- <new>
- <numeric>
-
<random>C++11
-
<ratio>C++11
-
<regex>C++11
- <stdexcept>
- <string>
-
<system_error>C++11
-
<tuple>C++11
-
<type_traits>C++11
-
<typeindex>C++11
- <typeinfo>
- <utility>
- <valarray>
<forward_list>
-
forward_listC++11
forward_list
-
forward_list::~forward_listC++11
-
forward_list::forward_listC++11
member functions
-
forward_list::assignC++11
-
forward_list::before_beginC++11
-
forward_list::beginC++11
-
forward_list::cbefore_beginC++11
-
forward_list::cbeginC++11
-
forward_list::cendC++11
-
forward_list::clearC++11
-
forward_list::emplace_afterC++11
-
forward_list::emplace_frontC++11
-
forward_list::emptyC++11
-
forward_list::endC++11
-
forward_list::erase_afterC++11
-
forward_list::frontC++11
-
forward_list::get_allocatorC++11
-
forward_list::insert_afterC++11
-
forward_list::max_sizeC++11
-
forward_list::mergeC++11
-
forward_list::operator=C++11
-
forward_list::pop_frontC++11
-
forward_list::push_frontC++11
-
forward_list::removeC++11
-
forward_list::remove_ifC++11
-
forward_list::resizeC++11
-
forward_list::reverseC++11
-
forward_list::sortC++11
-
forward_list::splice_afterC++11
-
forward_list::swapC++11
-
forward_list::uniqueC++11
-
non-member overloads
public member function
<forward_list>
std::forward_list::sort
(1) | void sort(); |
---|---|
(2) | template <class Compare> void sort (Compare comp); |
Sort elements in container
The sorting is performed by applying an algorithm that uses either operator< (in version (1)) or comp (in version (2)) to compare elements. This comparison shall produce a strict weak ordering of the elements (i.e., a consistent transitive comparison, without considering its reflexiveness).
The resulting order of equivalent elements is stable: i.e., equivalent elements preserve the relative order they had before the call.
The entire operation does not involve the construction, destruction or copy of any element object. Elements are moved within the container.
Parameters
- comp
- Binary predicate that, taking two values of the same type of those contained in the forward_list, returns true if the first argument goes before the second argument in the strict weak ordering it defines, and false otherwise.
This shall be a function pointer or a function object.
Return value
noneExample
|
|
Output:
default sort (operator<): 5 13 22 31 40 62 90 sort with std::greater(): 90 62 40 31 22 13 5 |
Complexity
Approximately NlogN where N is the container size.Iterator validity
No changes.Data races
The container is modified.All contained elements are accessed (but not modified). Concurrently iterating through the container is not safe.
Exception safety
Basic guarantee: if an exception is thrown, the container is in a valid state.It throws if the comparison or the moving operation of any element throws.
See also
- forward_list::merge
- Merge sorted lists (public member function)
- forward_list::reverse
- Reverse the order of elements (public member function)
- forward_list::unique
- Remove duplicate values (public member function)
Home page | Privacy policy
© cplusplus.com, 2000-2025 - All rights reserved - v3.3.4s
Spotted an error? contact us
© cplusplus.com, 2000-2025 - All rights reserved - v3.3.4s
Spotted an error? contact us