C++标准模板库(STL)的概念
STL(Standard Template Library)标准模板库是 C++ 标准库中的一部分,标准模板库为 C++ 提供了完善的数据结构及算法。
STL 标准模板库包括三部分:容器、算法和迭代器。容器是对象的集合,STL 的容器有:vector、stack、queue、deque、list、set 和 map 等。STL 算法是对容器进行处理,比如排序、合并等操作。迭代器则是访问容器的一种机制。
在 C++ 定义数组时,我们必须提前知晓数组的大小,然后为了避免因为新数据的加入而导致越界,因而需要不断地进行越界检测,这样一来效率就大大降低了。而使用 STL 有一个非常大的优点就是不需要提前知道数组的大小,当有新元素加入时,容器会自动增大,删除元素时,容器会自动减小。
除此之外,STL 还提供了大量的算法用于操作容器。STL 具有可扩展性,也就是说可以增加新的容器和算法。
STL 基本容器可以分为:
- 序列式容器,主要有 list、vector、deque;
- 关联式容器,主要有 set、multiset、map、multimap;
序列式容器可以像数组一样通过下标进行访问。关联式容器则是需要通过键值进行访问,关联式容器可以将任何类型的数据作为键值。
容器 | 类型 | 描述 |
---|---|---|
vector | 序列式容器 | 按照需要改变长度的数组 |
list | 序列式容器 | 双向链表 |
deque | 序列式容器 | 可以操作两端的数组 |
set | 关联式容器 | 集合 |
multiset | 关联式容器 | 允许重复的集合 |
map | 关联式容器 | 图表 |
multimap | 关联式容器 | 允许重复的图表 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!