面试题答案
一键面试-
创建Vec集合:
- 可以使用
vec!
宏创建一个Vec并初始化元素。例如:
let mut numbers: Vec<i32> = vec![1, 2, 3];
- 也可以先创建一个空的Vec,然后再添加元素:
let mut numbers: Vec<i32> = Vec::new();
- 可以使用
-
向Vec集合中添加元素:
- 使用
push
方法。例如:
let mut numbers: Vec<i32> = Vec::new(); numbers.push(1); numbers.push(2);
- 使用
-
删除Vec集合中的元素:
- 使用
pop
方法删除并返回Vec的最后一个元素。例如:
let mut numbers: Vec<i32> = vec![1, 2, 3]; let last = numbers.pop();
- 使用
remove
方法删除指定位置的元素。例如:
let mut numbers: Vec<i32> = vec![1, 2, 3]; let removed = numbers.remove(1);
- 使用
-
获取Vec集合特定位置的元素:
- 使用索引操作符
[]
。例如:
let numbers: Vec<i32> = vec![1, 2, 3]; let second = numbers[1];
- 这种方式在索引越界时会导致程序崩溃。为了安全获取元素,可以使用
get
方法,它返回一个Option
值:
let numbers: Vec<i32> = vec![1, 2, 3]; let second = numbers.get(1);
- 使用索引操作符
-
适合使用Vec集合的场景:
- 动态数组场景:当需要一个可以动态增长和收缩的数组时,Vec是一个很好的选择。例如,在实现一个简单的日志记录器时,随着日志的不断产生,可以使用Vec来存储日志条目,并且可以根据需要动态增加容量。
- 元素顺序重要场景:如果元素的顺序很重要,并且需要频繁地在末尾添加和删除元素,Vec非常适用。比如实现一个简单的栈数据结构,栈的push和pop操作与Vec的
push
和pop
方法很契合。