Comment trier un vecteur en Rust : par ordre croissant, décroissant et avec une logique personnalisée
Bonjour ! Je viens de commencer à apprendre Rust et j'ai rencontré un problème : je ne comprends pas comment trier correctement un vecteur. J'ai l'habitude de Python, où on peut simplement appeler `sorted()`, mais ici c'est différent.
Supposons que j'ai un vecteur de nombres : `let mut numbers = vec![5, 2, 8, 1, 9];`. Je veux le trier par ordre croissant pour obtenir `[1, 2, 5, 8, 9]`. Ensuite, il faudra peut-être le trier par ordre décroissant. J'ai essayé d'écrire quelque chose comme `numbers.sort()` et ça semble fonctionner, mais je ne suis pas sûr que ce soit correct.
J'ai aussi un vecteur de chaînes : `let mut words = vec!["banana", "apple", "cherry", "date"];`. Comment le trier par ordre alphabétique ? Et si je veux trier par longueur de chaîne (par exemple, de la plus courte à la plus longue) ?
Enfin, j'ai une structure `Person` avec les champs `name` et `age`. J'ai créé un vecteur `Vec`. Comment le trier d'abord par âge, puis par nom ? En Python, j'utiliserais `lambda` ou `itemgetter`, mais en Rust quoi ?
Expliquez-moi avec des exemples.