第十三章 STL 算法与迭代器
上一章我们学习了 STL 的“外壳”——容器(Containers)。这些容器有的内存分布连续(vector),有的是链式节点(list),有的是庞大的树结构(map)。
如果标准库要为每一种容器都分别写一套排序、查找、统计的代码,那工作量将是灾难性的。STL 的设计天才之处在于:数据结构(容器)与操作(算法)是完全分离的。
连接它们两者的桥梁,正是我们在本章要学习的第一个核心概念:迭代器(Iterators)。
本章内容包括:
- 迭代器:STL 的“通用指针”,也是剥离容器具体实现细节的关键。
- 常用算法:掌握
<algorithm>头文件中的精兵强将,取代手写循环。 - Lambda 表达式:C++11 引入的现代 C++ 明星特性,它是为算法提供“定制行为(比较/筛选规则)”最优雅的手段。
学完本章,你的 C++ 代码风格将发生质的飞跃:从繁琐的底层 for 循环,迈向声明式(Declarative)的高级泛型编程。