Avatar ·

Comment supprimer un élément d'un vecteur en Rust en connaissant sa valeur ?

Bonjour la communauté ! Je suis débutant en Rust et j'essaie de comprendre les vecteurs. J'ai un vecteur, par exemple `let mut numbers = vec![1, 2, 3, 4, 5];` et je veux en supprimer un élément en connaissant sa valeur, pas son index. Disons que je veux supprimer le nombre `3`. Dans d'autres langages, comme Python, j'écrirais `numbers.remove(3)` ou `numbers = [x for x in numbers if x != 3]`. Mais en Rust, c'est plus compliqué. J'ai essayé d'utiliser la méthode `remove()`, mais elle prend un index, pas une valeur. J'ai alors tenté d'écrire une boucle : ```rust let mut numbers = vec![1, 2, 3, 4, 5]; let target = 3; for (i, &val) in numbers.iter().enumerate() { if val == target { numbers.remove(i); break; } } ``` Mais le compilateur a renvoyé une erreur de vérification d'emprunt (borrow checker). J'ai lu qu'en Rust, on ne peut pas modifier une collection pendant qu'on itère dessus. Comment supprimer correctement un élément par valeur ? Et s'il y a plusieurs éléments identiques dans le vecteur ? Par exemple, `vec![1, 2, 3, 3, 4]` — faut-il supprimer seulement la première occurrence ?