STL将常用数据结构和算法抽象成可复用组件,使程序员不必为每个项目重复实现动态数组、链表、排序、查找等基础设施。学习STL不能只停留在背接口,更重要的是理解容器的结构、算法的复杂度、迭代器的能力以及操作后的失效规则。
本文介绍STL的定位、六大组件及协作关系,梳理常用容器的选择原则、复杂度意识、线程安全边界和分阶段学习路线,并用一个可直接编译的示例演示容器、 ...
当多个函数或类只有“所处理的数据类型”不同,逐份复制代码不仅低效,还容易让各版本的行为逐渐失去一致。C++模板把类型或编译期常量变成参数,让编译器根据实际使用生成对应代码,是标准库容器、算法、智能指针等设施的重要基础。
本文从泛型编程出发,系统整理函数模板的定义、模板实参推导、显式模板实参、重载匹配规则,以及类模板的定义、实例化、类外成员实现和代码组织方式。 ...
