经过前面的几篇文章,我们已经系统学习了 STL 的核心内容:

  • STL 基本概念
  • vector
  • map / unordered_map
  • iterator
  • algorithm
  • STL 容器体系
  • 泛型编程思想

这一篇我们从 工程实践的角度,总结 STL 在实际开发中的常见用法。


一、STL 的整体结构回顾

STL 的核心结构可以总结为三部分:

STL
│
├─ Containers(容器)
├─ Iterators(迭代器)
└─ Algorithms(算法)

三者关系:

容器      → 存储数据
迭代器    → 访问数据
算法      → 操作数据

例如:

vector<int> 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

用于 数据排序

示例:

vector<int> nums = {5,3,1,4};

sort(nums.begin(), nums.end());

应用场景:

排行榜
数据排序
统计结果

2 unordered_map + vector

用于 统计和存储数据

示例:

vector<string> words = {"apple","banana","apple"};

unordered_map<string,int> count;

for(auto &w : words)
{
    count[w]++;
}

应用场景:

词频统计
日志统计
数据统计

3 map + set

用于 有序数据管理

示例:

set<int> 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 可以适用于多种数据类型。

例如:

vector<int>
vector<string>
map<string,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。

更多推荐