Namespaces
Variants

std::experimental::ranges:: sort

From es.cppreference.net
Definido en el encabezado <experimental/ranges/algorithm>
template < RandomAccessIterator I, Sentinel < I > S,

class Comp = ranges:: less <> , class Proj = ranges:: identity >
requires Sortable < I, Comp, Proj >

I sort ( I first, S last, Comp comp = Comp { } , Proj proj = Proj { } ) ;
(1) (ranges TS)
template < RandomAccessRange R,

class Comp = ranges:: less <> , class Proj = ranges:: identity >
requires Sortable < ranges:: iterator_t < R > , Comp, Proj >

ranges:: safe_iterator_t < R > sort ( R && r, Comp comp = Comp { } , Proj proj = Proj { } ) ;
(2) (ranges TS)
1) Ordena los elementos en el rango [ first , last ) en orden ascendente. No se garantiza que se preserve el orden de los elementos iguales. Los elementos se comparan usando comp después de aplicar la proyección proj .
2) Ordena los elementos en el rango r , como si fuera mediante return ranges:: sort ( ranges:: begin ( r ) , ranges:: end ( r ) , comp, proj ) ; .

No obstante las declaraciones representadas anteriormente, el número real y el orden de los parámetros de plantilla para las declaraciones de algoritmos no está especificado. Por lo tanto, si se utilizan argumentos de plantilla explícitos al llamar a un algoritmo, el programa probablemente no sea portable.

Contenido

Parámetros

first, last - el rango de elementos a ordenar
r - el rango de elementos a ordenar
comp - el comparador a utilizar
proj - la proyección a aplicar a los elementos en el rango

Valor de retorno

Un iterador que apunta más allá del final del rango (es decir, se compara igual a last para la sobrecarga (1) , y ranges::end(r) para la sobrecarga (2) ).

Complejidad

O(N·log(N)) comparaciones, donde N es igual al número de elementos en el rango.

Ejemplo

Véase también

ordena un rango de elementos
(plantilla de función & objeto función de algoritmo)