Avatar ·

如何在 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. 循环看起来冗长,而且可能不