std::forward_list<T,Allocator>:: sort
|
void
sort
(
)
;
|
(1) |
(desde C++11)
(constexpr desde C++26) |
|
template
<
class
Compare
>
void sort ( Compare comp ) ; |
(2) |
(desde C++11)
(constexpr desde C++26) |
Ordena los elementos y preserva el orden de los elementos equivalentes. Si se lanza una excepción, el orden de los elementos en * this no está especificado.
Ninguna referencia o iterador se invalida.
Contenidos |
Parámetros
| comp | - |
objeto 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
de) el segundo.
La firma de la función de comparación debe ser equivalente a la siguiente: bool cmp ( const Type1 & a, const Type2 & b ) ;
Aunque la firma no necesita tener
const
&
, la función no debe modificar los objetos pasados a ella y debe poder aceptar todos los valores de tipo (posiblemente const)
|
| Requisitos de tipo | ||
-
Compare
debe cumplir con los requisitos de
Compare
.
|
||
Complejidad
Dado N como std:: distance ( begin ( ) , end ( ) ) :
Notas
std::sort
requiere iteradores de acceso aleatorio y por lo tanto no puede utilizarse con
forward_list
. Esta función también se diferencia de
std::sort
en que no requiere que el tipo de elemento de la
forward_list
sea intercambiable, preserva los valores de todos los iteradores y realiza una ordenación estable.
Ejemplo
#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 << "inicialmente: " << list << '\n'; list.sort(); std::cout << "ascendente: " << list << '\n'; list.sort(std::greater<int>()); std::cout << "descendente:" << list << '\n'; }
Salida:
inicialmente: 8 7 5 9 0 1 3 2 6 4 ascendente: 0 1 2 3 4 5 6 7 8 9 descendente: 9 8 7 6 5 4 3 2 1 0
Véase también
|
invierte el orden de los elementos
(función miembro pública) |