std::hive<T,Allocator>::sort
template< class Compare = std::less<T> >
void sort( Compare comp = Compare() );
|
(desde C++26) | |
Ordena los elementos. Puede asignar memoria. Los elementos se comparan usando comp. No se preserva el orden de los elementos equivalentes.
Las referencias, punteros e iteradores que se refieren a elementos en *this, así como el iterador pasado-el-final, pueden ser invalidados.
T debe ser MoveInsertable en hive, MoveAssignable y Swappable. De lo contrario, el comportamiento no está definido.
Parámetros
| comp | - | objeto de función de comparación (es decir, un objeto que satisface los requisitos de Compare) que devuelve true si el primer argumento es menor que (es decir, está ordenado antes) que el segundo. La firma de la función de comparación debe ser equivalente a la siguiente:
Si bien la firma no necesita tener |
| Requisitos de tipo | ||
-Compare debe cumplir los requisitos de Compare.
| ||
Complejidad
N·log(N) aplicaciones de comp, donde N es size().
Excepción
Si se lanza una excepción, el orden de los elementos en *this es no especificado.
Notas
std::sort y ranges::sort requieren iteradores de acceso aleatorio, por lo que no se pueden usar con hive.
Ejemplo
#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);
}
Salida:
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]
Véase también
| elimina elementos duplicados consecutivos (función miembro pública) |