Riordina gli elementi dell'array, tramite funzione di callback.
Sintassi |
void sort(const less &in callback, uint index = 0, uint count = uint(-1)) |
---|---|
callback |
Funzione di callback per ordinamento |
index |
Indice del primo elemento (tra 0 e size()-1) |
count |
Numero elementi consecutivi (opzionale; -1=tutti gli elementi) |
Risultato |
(nessuno) |
La funzione di callback array<T>::less è la seguente.
Sintassi |
bool array<T>::less(const T &in value_a, const T &in value_b) |
---|---|
T |
Tipo di dato dell'array |
value_a |
Valore A per il confronto (tipo T) |
value_b |
Valore B per il confronto (tipo T) |
Risultato |
Rende true se value_a è minore di value_b, false altrimenti |
Esempio di utilizzo:
/* Ordinamento array di interi */ bool int_less_callback(const int &in v0 , const int &in v1) { return v0 < v1; }
array<int> array1 = {86,36,47}; array1.sort(int_less_callback); /* array1 contiene {36, 47, 86} */
/* Ordinamento array di oggetti utente */ class MyObject { MyObject() { this.age = 0; this.credits = 0; }
MyObject(string name, int age, int credits = 0) { this.name = name; this.age = age; this.credits = credits; }
string name; uint age; uint credits; }
bool MyObject_less_callback(const MyObject @const &in v0 , const MyObject @const &in v1) { return v0.age < v1.age; }
array<MyObject @> objects;
objects.append(MyObject("Jerry", 54, 1000)); objects.append(MyObject("David", 34, 1200)); objects.append(MyObject("Charles", 60, 2000)); objects.append(MyObject("Robert", 56, 1900)); objects.sort(MyObject_less_callback); /*! objects contiene, in ordine di age, 34:David, 54:Jerry, 56:Robert e 60:Charles */ |