std::hive<T,Allocator>::sort
template< class Compare = std::less<T> >
void sort( Compare comp = Compare() );
|
(depuis C++26) | |
Trie les éléments. Peut allouer. Les éléments sont comparés en utilisant comp. L'ordre des éléments équivalents n'est pas préservé.
Les références, pointeurs et itérateurs faisant référence aux éléments dans *this, ainsi que l'itérateur de fin, peuvent être invalidés.
T doit être MoveInsertable dans hive, MoveAssignable et Swappable. Sinon, le comportement est indéfini.
Paramètres
| comp | - | objet fonction de comparaison (c'est-à-dire un objet qui satisfait aux exigences de Compare) qui retourne true si le premier argument est less que (c'est-à-dire est ordonné before) le second. La signature de la fonction de comparaison doit être équivalente à la suivante :
Bien que la signature n'ait pas besoin d'avoir |
| Exigences de type | ||
-Compare doit satisfaire aux exigences de Compare.
| ||
Complexité
N·log(N) applications de la comp, où N est size().
Exception
Si une exception est levée, l'ordre des éléments dans *this est non spécifié.
Notes
std::sort et ranges::sort nécessitent des itérateurs à accès aléatoire et ne peuvent donc pas être utilisés avec hive.
Exemple
#include <hive>
#include <functional>
#include <print>
int main()
{
std::hive<int> hive{3, 1, 4, 1, 5, 9, 2, 6, 5};
std::println("Initially: {}", hive);
hive.sort();
std::println("Ascending: {}", hive);
hive.sort(std::greater<int>());
std::println("Descending: {}", hive);
}
Sortie :
Initially: [3, 1, 4, 1, 5, 9, 2, 6, 5]
Ascending: [1, 1, 2, 3, 4, 5, 5, 6, 9]
Descending: [9, 6, 5, 5, 4, 3, 2, 1, 1]
Voir aussi
| supprime les éléments consécutifs en double (fonction membre publique) |