rust学习-5.2-集合-Vec

在Rust编程语言中,Vec 是一个可增长的可变数组,用于存储一系列元素。它属于Rust标准库提供的集合类型之一。Vec 是泛型的,这意味着它可以存储任何类型的数据。
Vec 通过宏 vec! 进行初始化,这个宏允许你轻松地创建一个包含初始元素的向量。使用 vec! 宏时,你可以在宏调用中直接指定初始元素。
下面是 Vecvec! 宏的基本用法示例:

fn main() {
    // 使用vec!宏创建一个包含初始元素的Vec
    let v: Vec<i32> = vec![1, 2, 3, 4, 5];
    // Vec的长度
    println!("The length of the vector is: {}", v.len());
    // 访问Vec中的元素
    println!("The first element is: {}", v[0]);
    println!("The second element is: {}", v[1]);
    // 遍历Vec中的元素
    for i in &v {
        println!("{}", i);
    }
    // 可变的Vec,可以更改其元素
    let mut m = vec![1, 2, 3];
    m.push(4);
    m.push(5);
    println!("The modified vector is: {:?}", m);
}

在这个例子中:

  • vec![1, 2, 3, 4, 5]; 使用 vec! 宏创建了一个包含5个 i32 类型元素的 Vec
  • v.len() 获取 Vec 的长度。
  • v[0]v[1] 通过索引访问 Vec 中的元素。
  • 使用 for 循环遍历 Vec 中的元素。
  • mut 关键字用于声明一个可变的 Vec,然后使用 push 方法向 Vec 添加新元素。
    使用 Vecvec! 宏时,需要记住的是:
  • Vec 在内存中是连续存储的。
  • Vec 可以通过 push 方法添加元素,通过 pop 方法移除元素。
  • Vec 的索引访问是快速的,但添加或删除元素可能会涉及重新分配内存和复制数据。
  • 当使用索引访问 Vec 时,需要确保索引是有效的,否则程序将会 panic。

Vec 的切片

fn main() {
    let vec = vec![1, 2, 3, 4, 5];
    let slice_of_vec = &vec[1..4]; // 包含索引1,不包含索引4
    println!("Vec 切片: {:?}", slice_of_vec);
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容