很多初学 C++ 的同学都会有一个疑问:
std是什么?STL 是什么?STL 和 std 是一个东西吗?STL 是不是就是数据结构?
这篇文章一次讲清楚。
一、什么是 std?
std 是:
standard 的缩写
在 C++ 中,它表示:
C++ 标准库的命名空间(namespace std)
也就是说:
所有标准库内容都在这个命名空间里。
例如:
std::cout std::string std::vector std::map std::thread
这些都属于:
namespace std
⚠ 注意:
std 不是功能模块,它只是'名字空间'。
二、什么是 C++ 标准库?
C++ 标准库是一整套官方提供的基础功能集合,包括:
- 输入输出(iostream)
- 字符串(string)
- 线程(thread)
- 时间(chrono)
- 文件系统(filesystem)
- 数学函数(cmath)
- 容器与算法(STL)
其中:
容器与算法这一块,就是 STL。
三、什么是 STL?
STL = Standard Template Library
翻译:标准模板库
它是:
基于 C++ 模板机制实现的一套'通用数据结构 + 算法体系'。
STL 的五大核心组件:
- 容器(Containers)
- 算法(Algorithms)
- 迭代器(Iterators)
- 函数对象(Functors)
- 分配器(Allocators)
但核心可以简化为:
容器 + 算法 + 迭代器
四、STL 是数据结构吗?
很多人认为:
STL = 数据结构
这个说法 不完全正确。
STL 确实包含数据结构:
| 容器 | 本质数据结构 |
|---|---|
| vector | 动态数组 |
| list | 双向链表 |
| map | 红黑树 |
| unordered_map | 哈希表 |
| set | 红黑树 |
| priority_queue | 堆 |
但 STL 的核心设计在于:

