std::hive<T,Allocator>::sort
template< class Compare = std::less<T> >
void sort( Compare comp = Compare() );
|
(seit C++26) | |
Sortiert die Elemente. Kann Speicher allozieren. Elemente werden mittels comp verglichen. Die Reihenfolge äquivalenter Elemente bleibt nicht erhalten.
Referenzen, Zeiger und Iteratoren, die auf Elemente in *this verweisen, sowie der End-Iterator, können ungültig gemacht werden.
T sollte MoveInsertable in Hive, MoveAssignable und Swappable sein. Andernfalls ist das Verhalten undefiniert.
Parameter
| comp | - | Vergleichsfunktionsobjekt (d.h. ein Objekt, das die Anforderungen von Compare erfüllt) und true zurückgibt, wenn das erste Argument kleiner als (d.h. in der Ordnung vor dem zweiten steht) das zweite ist. Die Signatur der Vergleichsfunktion sollte der folgenden entsprechen:
Während die Signatur kein |
| Typanforderungen | ||
-Compare muss die Anforderungen von Compare erfüllen.
| ||
Komplexität
N·log(N) Anwendungen des comp, wobei N gleich size() ist.
Ausnahme
Wenn eine Ausnahme ausgelöst wird, ist die Reihenfolge der Elemente in *this unspezifiziert.
Hinweise
std::sort und ranges::sort benötigen Random-Access-Iteratoren und können daher nicht mit Hive verwendet werden.
Beispiel
#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);
}
Ausgabe:
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]
Siehe auch
| entfernt aufeinanderfolgende doppelte Elemente (öffentliche Mitgliedsfunktion) |