C++ STL
STL(标准模板库),C++ 生态最常用的轮子集:容器、算法、迭代器全是现成的,写 C++ 十有八九天天在用。前置:C++ 基础。
章节规划
| 章节 | 内容 | 你会学到 | 状态 |
|---|---|---|---|
| 1. STL 是什么 | 容器/算法/迭代器三件套总览 | 容器装数据、算法加工、迭代器指路 | ✅ 已上线 |
| 2. vector | 最常用的动态数组 | 定义、增删、遍历、自动扩容 | ✅ 已上线 |
| 3. string | 字符串处理 | 拼接、长度、substr、find、中文长度坑 | ✅ 已上线 |
| 4. map 与 set | 键值对与去重 | map 像字典,set 自动去重排序 | ✅ 已上线 |
| 5. 综合练习 | 用 STL 做一个通讯录 | 全章容器串联,实战增删查改 | ✅ 已上线 |
适合谁看
- 已学完 C++ 基础,会类、指针、引用
- 想写更实用的 C++ 代码,不想手写链表、排序等轮子
- 准备进入数据结构与算法学习
STL 和 Python 内置容器对照
| 需求 | Python | C++ STL | 头文件 |
|---|---|---|---|
| 动态数组 | list |
std::vector |
<vector> |
| 键值对字典 | dict |
std::map |
<map> |
| 去重集合 | set |
std::set |
<set> |
| 字符串 | str |
std::string |
<string> |
| 排序 | sorted() |
std::sort() |
<algorithm> |
| 查找 | in / .index() |
std::find() |
<algorithm> |
最大的差别:Python 把这些都内置了,STL 得先 #include 对应头文件,再带上 std:: 前缀。麻烦一点点,换来的是对内存的精打细算。
记忆口诀
容器装数据,算法来加工,迭代器当桥,三件套齐活。
动手建议
- 每章代码都建议本地编译运行一遍,熟悉
#include和std::的用法 - 完成《通讯录》练习后,试着加上"按姓名排序""按电话搜索"功能
- 学会
vector、string、map这三个后,绝大多数日常任务都能搞定
零基础建议先过一遍 Python 找感觉,再来啃 C++ 🐸