Namespaces
Variants

std::experimental::ranges:: sort

From cppreference.net
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) Sortiert die Elemente im Bereich [ first , last ) in aufsteigender Reihenfolge. Die Reihenfolge gleicher Elemente ist nicht garantiert. Elemente werden mit comp verglichen nach Anwendung der Projektion proj .
2) Sortiert die Elemente im Bereich r , als ob durch return ranges:: sort ( ranges:: begin ( r ) , ranges:: end ( r ) , comp, proj ) ; .

Ungeachtet der oben dargestellten Deklarationen ist die tatsächliche Anzahl und Reihenfolge der Template-Parameter für Algorithmusdeklarationen nicht spezifiziert. Daher ist das Programm wahrscheinlich nicht portabel, wenn explizite Template-Argumente beim Aufruf eines Algorithmus verwendet werden.

Inhaltsverzeichnis

Parameter

first, last - der Bereich der zu sortierenden Elemente
r - der Bereich der zu sortierenden Elemente
comp - der zu verwendende Komparator
proj - die auf Elemente im Bereich anzuwendende Projektion

Rückgabewert

Ein Iterator, der über das Ende des Bereichs hinaus zeigt (d.h., er vergleicht gleich mit last für Überladung (1) , und ranges::end(r) für Überladung (2) ).

Komplexität

O(N·log(N)) Vergleiche, wobei N gleich der Anzahl der Elemente im Bereich ist.

Beispiel

Siehe auch

sortiert einen Bereich in aufsteigender Reihenfolge
(Funktions-Template)