C++ STL 系列(八):STL 工程实践总结 —— 常见容器组合与使用场景
经过前面的几篇文章我们已经系统学习了 STL 的核心内容STL 基本概念vectormap / unordered_mapiteratoralgorithmSTL 容器体系泛型编程思想这一篇我们从工程实践的角度总结 STL 在实际开发中的常见用法。一、STL 的整体结构回顾STL 的核心结构可以总结为三部分STL │ ├─ Containers容器 ├─ Iterators迭代器 └─ Algorithms算法三者关系容器 → 存储数据 迭代器 → 访问数据 算法 → 操作数据例如vectorint nums {3,1,2}; sort(nums.begin(), nums.end());这里vector 容器 begin/end 迭代器 sort 算法二、最常用的 STL 容器在实际开发中STL 容器非常多但最常用的主要是以下几个容器用途vector动态数组unordered_map哈希字典map有序字典set集合其中使用频率最高的是vector unordered_map map三、常见容器组合在实际项目中经常会组合使用 STL 容器。1 vector sort用于数据排序。示例vectorint nums {5,3,1,4}; sort(nums.begin(), nums.end());应用场景排行榜 数据排序 统计结果2 unordered_map vector用于统计和存储数据。示例vectorstring words {apple,banana,apple}; unordered_mapstring,int count; for(auto w : words) { count[w]; }应用场景词频统计 日志统计 数据统计3 map set用于有序数据管理。示例setint s; s.insert(3); s.insert(1); s.insert(2);输出1 2 3应用场景去重 自动排序 集合管理四、STL 使用原则在实际开发中可以遵循几个简单原则需要列表 → vector 需要字典 → unordered_map 需要排序 → map / set大多数问题都可以用这三个容器解决。五、STL 的优势使用 STL 的好处代码复用 开发效率高 性能稳定 安全性更好STL 中的数据结构已经经过大量优化不需要自己重新实现。六、STL 学习总结STL 的核心可以用一句话概括STL 容器 迭代器 算法通过泛型编程STL 可以适用于多种数据类型。例如vectorint vectorstring mapstring,int都可以使用同一套模板实现。七、STL 学习路线总结学习 STL 的推荐顺序1 STL 基本概念 2 vector 3 map / unordered_map 4 iterator 5 algorithm 6 容器体系 7 泛型编程 8 工程实践按照这个顺序学习可以逐步建立完整的 STL 知识体系。八、总结STL 是 C 标准库中非常重要的一部分。可以简单理解为STL 是 C 提供的一套通用数据结构和算法工具库。通过 STL我们可以直接使用成熟的数据结构 避免重复实现底层逻辑 提高开发效率掌握 STL是学习 C 的重要一步。系列总结本系列从基础到实践完整介绍了 STL 的核心内容01 STL 基本概念 02 vector 03 map 与 unordered_map 04 iterator 05 algorithm 06 STL 容器体系 07 泛型编程 08 工程实践理解这些内容后基本可以在实际项目中熟练使用 STL。