Qual è il metodo attualmente raccomandato per ordinare i valori in un vettore?Come ordinare un vettore in Rust?
risposta
Mentre le soluzioni proposte sopra possono ordinare vettori di numeri interi ho avuto problemi nell'ordinamento di vettori di galleggianti.
La soluzione più semplice era utilizzare quickersort crate, che può anche ordinare i float. La cassa quickersort può anche ordinare altri vettori di qualsiasi tipo e implementa anche metodi per ordinare i confronti con confronti (sort_by).
seguito è riportato il codice di Rust:
extern crate quickersort;
//let's create the vector with the values
let mut vals = Vec::new();
vals.push(31.2);
vals.push(31.2);
vals.push(10.0);
vals.push(100.4);
vals.push(4.1);
quickersort::sort_floats(&mut vals[..]); // sort the vector
Non dovresti avere bisogno di un crate separato solo per ordinare i float - per esempio, 'v.sort_by (| a, b | a.partial_cmp (b) .unwrap_or (Ordering :: Equal))' dovrebbe funzionare con i float. (A seconda di cosa vuoi fare con i NaN nell'array, puoi scrivere una più accurata funzione di confronto.) – user4815162342
* Ho avuto problemi nell'ordinamento dei vettori di float * - ed è per questo che ci sono già intere domande e risposte dedicate a quello specifico problema (https://stackoverflow.com/q/26489701/155423, https://stackoverflow.com/q/28247990/155423, https://stackoverflow.com/q/37127209/155423). – Shepmaster
- 1. Come ordinare un vettore STL?
- 2. Come confrontare i contenuti di un vettore di proprietà con un vettore statico in Rust?
- 3. Come ordinare vettore di puntatore a struct
- 4. Come ordinare una data.table utilizzando un vettore di destinazione
- 5. Come posso scambiare elementi in un vettore, una sezione o un array in Rust?
- 6. Qual è un buon metodo per * temporaneamente * ordinare un vettore?
- 7. Come ordinare un vettore in base ai valori di un altro
- 8. Come ordinare un vettore di caratteri in cui gli elementi contengono lettere e numeri in R?
- 9. Come ottengo un valore assoluto in Rust?
- 10. In che modo gli elementi di un vettore sono spostati a sinistra in Rust?
- 11. Come ordinare il vettore di punti in base a un asse Y?
- 12. Come convertire un vettore di byte (u8) in una stringa
- 13. Come ordinare un SplFixedArray?
- 14. Come ordinare un datatable
- 15. Come ordinare/ordinare i dati in Riak?
- 16. Posso ordinare il vettore di una tupla di riferimenti?
- 17. ordina un vettore di punti basato su un altro vettore
- 18. Come cercare un elemento in un vettore?
- 19. ordinamento di un vettore in ordine decrescente
- 20. Come randomizzare un vettore
- 21. Creare un nuovo vettore di dimensioni fisse
- 22. Come scrivere in un indirizzo mappato in memoria in Rust?
- 23. Come si trasforma & str in ~ str in Rust?
- 24. Come ordinare un NSMutableArray in ordine alfabetico?
- 25. Come ordinare un elenco in C#
- 26. Come ordinare un NSArray in ordine alfabetico?
- 27. Come ordinare un ArrayCollection in Flex
- 28. Come ordinare un array in JavaScript
- 29. Convertire una stringa di numeri in una matrice/vettore di int in Rust
- 30. Come posso ordinare un NSDictionary?
Quali sono i requisiti per il tipo T? Viene visualizzato un messaggio di errore "Vec non implementa alcun metodo nell'ambito denominato 'sort'". Sospetto che ciò potrebbe essere dovuto al fatto che non ho implementato alcuni tratti per MyType, ma ho cmp :: PartialEq e cmp :: PartialOrd finora. –
Esiste anche il metodo 'sort_by' che consente un predicato completamente personalizzato. – huon
@ChrisMorgan Impressionante, funziona, grazie! –