31天会用Rust——Day13,变长数组Vec

1,创建方式

空的。

fn main() {
    
    
    let mut a: Vec<i32> = Vec::new();
}

mut是因为我们要修改它
<i32>是泛型,表示元素类型

初始值的。

fn main() {
    
    
    let mut a: Vec<i32> = vec![1, 2, 3, 4];
    println!("{}", a[0]);
}

1

2,尾部操作

加入一个:push()
取出一个:pop()

fn main() {
    
    
    let mut a: Vec<i32> = Vec::new();
    for i in 1..=9 {
    
    
        a.push(i);
        print_vec(&a);
    }
    while !a.is_empty() {
    
    
        a.pop();
        print_vec(&a);
    }
}
fn print_vec(a: &Vec<i32>) {
    
    
    for b in a {
    
    
        print!("{},", b);
    }
    println!();
}

效果:

在这里插入图片描述

3,访问元素

索引访问:

fn main() {
    
    
    let mut a: Vec<String> = vec![String::from("1")];
    println!("a[0]:{}", a[0]);
}

1

方法访问,都有一层Option包裹着。

fn main() {
    
    
    let mut a: Vec<String> = vec![String::from("1")];
    let b = a.get(0);
    if b.is_some() {
    
    
        println!("a.get(0):{}", b.unwrap());
    }
}

1

4,遍历

只读遍历,可变遍历:

fn main() {
    
    
    let mut a: Vec<i32> = vec![1, 2, 3, 4, 5];
    print_vec(&a);
    print_add(&mut a);
}

fn print_vec(a: &Vec<i32>) {
    
    
    for b in a {
    
    
        print!("{},", b);
    }
    println!();
}

fn print_add(a: &mut Vec<i32>) {
    
    
    for b in a {
    
    
        *b += 1;
        print!("{},", b);
    }
    println!();
}

1,2,3,4,5,
2,3,4,5,6,

猜你喜欢

转载自blog.csdn.net/qq_37284843/article/details/124178276
今日推荐