如何在 Rust 中正确合并两个向量(Vec)?最佳拼接方法
大家好!我刚开始学习 Rust,遇到了合并两个向量的问题。假设我有两个数字向量:`vec1` 和 `vec2`。我需要得到第三个向量,它包含第一个向量的所有元素,然后是第二个向量的所有元素。
在 Python 中,我只需写 `vec1 + vec2`,但在 Rust 中这行不通。我尝试了几种方法,但不确定哪种正确且高效。
以下是我的代码:
```rust
let mut vec1 = vec![1, 2, 3];
let vec2 = vec![4, 5, 6];
// 尝试 1:简单相加(无法编译)
// let result = vec1 + vec2;
// 尝试 2:通过 extend
vec1.extend(vec2);
println!("{:?}", vec1); // 得到 [1, 2, 3, 4, 5, 6],但 vec1 被修改了
// 尝试 3:通过循环
let mut result = Vec::new();
for item in &vec1 {
result.push(*item);
}
for item in &vec2 {
result.push(*item);
}
```
问题:
1. `extend` 会获取所有权并修改原始向量,这有时不方便。
2. 循环看起来冗长,而且可能不