第 6 章:集合与迭代

第 6 章:集合与迭代

6.1 常用集合

Vec<T>

let mut v = Vec::new();
v.push(1);
v.push(2);
println!("{:?}", v);

HashMap<K, V>

use std::collections::HashMap;
let mut scores = HashMap::new();
scores.insert(String::from("Blue"), 10);

HashSet<T>

use std::collections::HashSet;
let mut set = HashSet::new();
set.insert("apple");

6.2 迭代器基础

let v = vec![1, 2, 3];
for val in v.iter() {
    println!("{}", val);
}
  • iter():不可变借用
  • iter_mut():可变借用
  • into_iter():获取所有权

6.3 迭代器适配器

let v: Vec<i32> = (1..5).map(|x| x * 2).collect();
let sum: i32 = v.iter().sum();

常见适配器:map, filter, fold, collect

6.4 闭包与函数式编程

let add_one = |x: i32| x + 1;
println!("{}", add_one(5));
  • 闭包可以捕获环境
  • 与迭代器结合写出简洁代码

6.5 性能与内存管理

  • 避免不必要的拷贝
  • 使用 reserve 预分配容量
  • 选择合适的数据结构

6.6 练习

  • 使用 Vec 实现简单栈
  • HashMap 统计文本中的词频
  • 练习 mapfilterfold 操作
posted on 2026-05-09 22:00  小樊童鞋  阅读(4)  评论(0)    收藏  举报