Sign in
or
Register
Courses
Textbook
Compiler
Contests
Topics
Computer Science. Textbook
C++. Strutture dati dinamiche
Ordinamento con comparatore
Ordina con comparatore
Un vettore (come un array) possono essere ordinati usando la funzione
sort()
. Ma questa funzione ordina in ordine crescente per impostazione predefinita. Per ordinare un array in un ordine diverso, è necessario utilizzare il cosiddetto
comparator
- una funzione che imposta l'ordinamento confrontando due oggetti .
Esempio
Un esempio di un comparatore che ordina gli elementi di un array in ordine crescente.
bool cmp(int primo, int secondo) { ritorna prima < secondo; }
e ordinando il vettore
A
usando il comparatore creato:
sort(A.begin(), A.end(), cmp);
Pensa agli iteratori
In base alla condizione del problema, è chiaro che è necessario applicare l'ordinamento
stable
(stable), quindi, invece di sort, dovrebbe essere usato stable_sort.
puoi anche specificare un oggetto funzione come comparatore, che puoi creare prima di chiamare la funzione sort.
Ad esempio:
struct
{
bool
operatore
()(
int
a,
int
b)
const
{
restituisci
a
<
b; } }cmp;