rust语言中vec的截取返回vec
时间: 2023-03-21 22:02:00 浏览: 514
在Rust语言中,可以使用切片(slice)来截取一个Vec的一部分,并返回一个新的Vec或者一个指向原Vec的切片。如果你想要返回一个新的Vec,可以使用Vec的方法`[start..end].to_vec()`,其中`start`是起始索引,`end`是结束索引(不包含在切片中)。下面是一个例子:
```rust
fn main() {
let vec1 = vec![1, 2, 3, 4, 5];
let vec2 = vec1[1..4].to_vec();
println!("{:?}", vec2); // 输出 [2, 3, 4]
}
```
如果你想要返回一个指向原Vec的切片,可以使用`&`符号来借用原Vec中的一部分。下面是一个例子:
```rust
fn main() {
let vec1 = vec![1, 2, 3, 4, 5];
let slice = &vec1[1..4];
println!("{:?}", slice); // 输出 [2, 3, 4]
}
```
注意,在这种情况下,你不能修改原Vec中的元素,因为你只是借用了其中的一部分。如果你需要修改原Vec中的元素,你可以先将其转换为一个可变的Vec,然后再进行切片操作。下面是一个例子:
```rust
fn main() {
let mut vec1 = vec![1, 2, 3, 4, 5];
let mut slice = &mut vec1[1..4];
slice[0] = 6;
println!("{:?}", vec1); // 输出 [1, 6, 4, 5, 6]
}
```
在这个例子中,我们首先将原Vec转换为可变的Vec,然后使用可变的切片来修改元素,最后打印原Vec来验证修改结果。
阅读全文
相关推荐















