Namespaces
Variants

std::experimental::ranges:: sort

From cppreference.net
Défini dans l'en-tête <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) Trie les éléments dans la plage [ first , last ) par ordre croissant. L'ordre des éléments égaux n'est pas garanti d'être préservé. Les éléments sont comparés en utilisant comp après application de la projection proj .
2) Trie les éléments dans la plage r , comme si par return ranges:: sort ( ranges:: begin ( r ) , ranges:: end ( r ) , comp, proj ) ; .

Nonobstant les déclarations dépeintes ci-dessus, le nombre réel et l'ordre des paramètres de template pour les déclarations d'algorithmes ne sont pas spécifiés. Ainsi, si des arguments de template explicites sont utilisés lors de l'appel d'un algorithme, le programme est probablement non portable.

Table des matières

Paramètres

first, last - la plage d'éléments à trier
r - la plage d'éléments à trier
comp - le comparateur à utiliser
proj - la projection à appliquer aux éléments de la plage

Valeur de retour

Un itérateur pointant au-delà de la fin de la plage (c'est-à-dire qu'il est égal à last pour la surcharge (1) , et à ranges::end(r) pour la surcharge (2) ).

Complexité

O(N·log(N)) comparaisons, où N est égal au nombre d'éléments dans la plage.

Exemple

Voir aussi

trie une plage en ordre croissant
(modèle de fonction)