Comment concaténer correctement deux vecteurs (Vec) en Rust ? Meilleures méthodes de concaténation
Bonjour à tous ! Je viens de commencer à apprendre Rust et j'ai rencontré un problème pour concaténer deux vecteurs. Supposons que j'ai deux vecteurs de nombres : `vec1` et `vec2`. Je dois obtenir un troisième vecteur qui contient tous les éléments du premier, puis tous ceux du second.
En Python, j'écrirais simplement `vec1 + vec2`, mais cela ne fonctionne pas en Rust. J'ai essayé plusieurs méthodes, mais je ne suis pas sûr de laquelle est correcte et efficace.
Voici mon code :
```rust
let mut vec1 = vec![1, 2, 3];
let vec2 = vec![4, 5, 6];
// Tentative 1 : addition simple (ne compile pas)
// let result = vec1 + vec2;
// Tentative 2 : via extend
vec1.extend(vec2);
println!("{:?}", vec1); // J'obtiens [1, 2, 3, 4, 5, 6], mais vec1 a été modifié
// Tentative 3 : via une boucle
let mut result = Vec::new();
for item in &vec1 {
result.push(*item);
}
for item in &vec2 {
result.push(*item);
}
```
Problèmes :
1. `extend` prend possession et modifie le vecteur d'origine, ce qui n'est pas toujours pratique.
2. La boucle semble lourde et probablement pas