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 ?