std::forward_list<T,Allocator>:: sort
|
void
sort
(
)
;
|
(1) |
(depuis C++11)
(constexpr depuis C++26) |
|
template
<
class
Compare
>
void sort ( Compare comp ) ; |
(2) |
(depuis C++11)
(constexpr depuis C++26) |
Trie les éléments et préserve l'ordre des éléments équivalents. Si une exception est levée, l'ordre des éléments dans * this n'est pas spécifié.
Aucune référence ou itérateur n'est invalidé.
Table des matières |
Paramètres
| comp | - |
objet fonction de comparaison (c'est-à-dire un objet qui satisfait aux exigences de
Compare
) qui renvoie
true
si le premier argument est
inférieur
à (c'est-à-dire est ordonné
avant
) le second.
La signature de la fonction de comparaison doit être équivalente à ce qui suit : bool cmp ( const Type1 & a, const Type2 & b ) ;
Bien que la signature n'ait pas besoin d'avoir
const
&
, la fonction ne doit pas modifier les objets qui lui sont passés et doit pouvoir accepter toutes les valeurs de type (éventuellement const)
|
| Exigences de type | ||
-
Compare
doit satisfaire aux exigences de
Compare
.
|
||
Complexité
Étant donné N comme std:: distance ( begin ( ) , end ( ) ) :
Notes
std::sort
nécessite des itérateurs à accès aléatoire et ne peut donc pas être utilisé avec
forward_list
. Cette fonction diffère également de
std::sort
en ce qu'elle ne nécessite pas que le type d'élément de la
forward_list
soit permutable, préserve les valeurs de tous les itérateurs et effectue un tri stable.
Exemple
#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'; }
Sortie :
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
Voir aussi
|
inverse l'ordre des éléments
(fonction membre publique) |