Grazie mille...E si puo' sapere il valore in millesecondi?
Grazie mille...E si puo' sapere il valore in millesecondi?
quindi è una classe della STL solo per c++?Originariamente inviato da MItaly
@Lak3d
Sì, ma si tratta di un oggetto algoritmo utilizzabile solo con i container STL; per ordinamenti su array standard puoi usare la funzione qsort (già citata in questa sede).
Sinceramente non sapevo che esistesse la qsort... ne esiste una per ogni tipo di ordinamento?
La stl è la libreria del c++, quindi si puo' usare solo con il c++. Per quanto riguarda il qsort, non so, ma penso che sia implementato con quicksort(qsort), visto che è l'algoritmo più veloce. Per quanto riguarda gli altri ordinamenti come insertion sort, counting sort,merge sort, non ti so dire se ci sono funzioni specifiche.
eh, ho visto questa funzione qsort, ma non capisco molto i parametri che vuole... c'è di mezzo un puntatore ad una funzione comparativa...
Si...Ma io non so come si usa...Sta cercando un sito che spiegasse qualcosa...Ma non ho ancora trovato nulla...
base: l'indirizzo dell'array da ordinarecodice:void qsort( void *base, size_t num, size_t width, int (__cdecl *compare )(const void *, const void *) );
num: il numero di elementi di cui è composto l'array
width: la dimensione in bytes di ciascun elemento
compare: l'indirizzo della funzione di confronto
All'atto pratico di solito la funzione si usa così:
codice:int arr[50]; //... qsort(arr, sizeof(arr)/sizeof(int), sizeof(int), cmp); //... int cmp(const void * el1, const void * el2) { if (*((int *)el1)>*((int *)el2)) return 1; else if (*((int *)el1)<*((int *)el2)) return -1; else return 0; }
Amaro C++, il gusto pieno dell'undefined behavior.