¿Cómo combinar correctamente dos vectores (Vec) en Rust? Las mejores formas de concatenación
¡Hola a todos! Acabo de empezar a aprender Rust y me encontré con la tarea de combinar dos vectores. Supongamos que tengo dos vectores de números: `vec1` y `vec2`. Necesito obtener un tercer vector que contenga todos los elementos del primero y luego todos del segundo.
En Python simplemente escribiría `vec1 + vec2`, pero en Rust esto no funciona. Probé varias formas, pero no estoy seguro de cuál es la correcta y eficiente.
Aquí está mi código:
```rust
let mut vec1 = vec![1, 2, 3];
let vec2 = vec![4, 5, 6];
// Intento 1: suma simple (no compila)
// let result = vec1 + vec2;
// Intento 2: usando extend
vec1.extend(vec2);
println!("{:?}", vec1); // Obtuve [1, 2, 3, 4, 5, 6], pero vec1 cambió
// Intento 3: usando un loop
let mut result = Vec::new();
for item in &vec1 {
result.push(*item);
}
for item in &vec2 {
result.push(*item);
}
```
Problemas:
1. `extend` toma ownership y modifica el vector original, lo que no siempre es conveniente.
2. El loop parece engorroso y probablemente no es óptimo.