Ho una matrice di (4) numeri in virgola mobile e ho bisogno di ordinare la matrice in ordine decrescente. Sono abbastanza nuovo di C++, e mi chiedevo quale sarebbe il modo migliore per farlo?ordina una matrice di float in C++
Grazie.
Ho una matrice di (4) numeri in virgola mobile e ho bisogno di ordinare la matrice in ordine decrescente. Sono abbastanza nuovo di C++, e mi chiedevo quale sarebbe il modo migliore per farlo?ordina una matrice di float in C++
Grazie.
Usa std::sort
con un comparatore non predefinita:
float data[SIZE];
data[0] = ...;
...
std::sort(data, data + size, std::greater<float>());
Assumendo il seguente:
float my_array[4];
È possibile ordinare in questo modo:
#include <algorithm>
// ... in your code somewhere
float* first(&my_array[0]);
float* last(first + 4);
std::sort(first, last);
Si noti che il secondo parametro (last
) punta a uno scorso la fine del tuo array di 4 elementi; questo è il modo corretto per passare la fine dell'array agli algoritmi STL. Da lì è quindi possibile chiamare:
std::reverse(first, last);
Per invertire il contenuto dell'array. Puoi anche scrivere un comparatore personalizzato per la routine sort
, ma lo considererei un passaggio sopra STL per principianti; tocca a voi.
@sth - dimenticato. Aggiornamento della mia risposta ... –
Per il principiante, 'std :: sort' è definito nell'intestazione' 'in STL. Ovviamente, se si tratta di un esercizio di compiti a casa, probabilmente dovresti implementare la tua funzione 'sort'. –
Johnsyweb
@RSamuelKlatchko Qual è la "dimensione" nel tuo codice? – tmighty