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,