当前位置: 首页 > news >正文

STL标准模板库

1. STL 简介

STL 全称是 Standard Template Library,叫做标准模板库
它是 C++语言自带的一套强大工具库,里面包含了很多常用数据结构和算法,而且是模板化写的,非常灵活和高效!

可以理解成:

C++ 官方送给你的一个巨大的“百宝箱”,里面装满了各种你经常需要用的工具。

部分举例简单解释
容器(Container)vector, list, map, set负责存数据的,比如数组、链表、集合、字典等
算法(Algorithm)sort, find, count, accumulate负责处理数据,比如排序、查找、统计、加总等
迭代器(Iterator)指针一样的东西负责在容器中走来走去,访问或修改数据

2. STL 容器类别

(1)序列容器(Sequence Containers)

这些容器按照特定的顺序存储数据,可以通过位置访问数据。它们类似于“数组”或“链表”,但功能更强大。

容器说明访问方式常见操作
vector动态数组,大小可以改变支持随机访问(operator[]at()快速插入尾部、访问元素、动态扩展大小
deque双端队列,可以从两端插入/删除支持随机访问快速在两端插入/删除
list双向链表,元素之间有指针不支持随机访问,支持顺序访问在任意位置插入/删除效率高
array固定大小的数组支持随机访问大小固定,不支持动态扩展
forward_list单向链表,只有一个方向的指针不支持随机访问,顺序访问list 更节省内存,适合单向遍历

(2)关联容器(Associative Containers)

这些容器通过键值对存储数据,并且自动保持元素的有序状态。一般用于查找操作非常高效。

容器说明常见操作
set存储唯一的元素,按升序排列查找、插入、删除、遍历
map存储键值对(key-value),按键的顺序排列查找、插入、删除、遍历
multiset存储可以重复的元素,按升序排列查找、插入、删除、遍历
multimap存储可以重复的键值对,按键的顺序排列查找、插入、删除、遍历

(3)容器适配器(Container Adapters)

容器适配器是对现有容器的一层封装,提供了不同的接口来满足特定的需求。常见的有栈、队列和优先队列。

容器说明常见操作
stack栈,遵循“后进先出(LIFO)”原则push(), pop(), top()
queue队列,遵循“先进先出(FIFO)”原则push(), pop(), front(), back()
priority_queue优先队列,按优先级顺序存储元素push(), pop(), top()

3. STL 迭代器类别

迭代器通过解引用操作 *it 访问元素

4. STL 算法类别

5. 泛型编程和宏

6. 函数模板

7. 类模板

相关文章:

  • 设备指纹护航电商和金融反欺诈体系建设
  • delphi使用sqlite3
  • 入门版 鸿蒙 组件导航 (Navigation)
  • Java 中的 Continuation:深入理解虚拟线程的基石
  • Uni-app网络请求AES加密解密实现
  • Uniapp:showLoading(等待加载)
  • Docker安装的mysql限制ip访问
  • 1. 用户之窗
  • iVX 图形化编程如何改写后端开发新范式
  • 后端Web实战之登录认证,JWT令牌,过滤器Filter,拦截器Interceptor一篇文章so easy!!!
  • vuex源码分析(一)——初始化vuex
  • truffle
  • SpringMVC 使用thymeleaf 进行数据展示
  • 微信小程序开发中关于首屏加载、本地数据持久化的思考
  • vscode源代码管理Tab-文件右侧标志(M、A 等)的含义
  • Unity AI-使用Ollama本地大语言模型运行框架运行本地Deepseek等模型实现聊天对话(二)
  • 线性代数与数据学习
  • k8s基本概念-YAML
  • flume----初步安装与配置
  • 9.Three.js中 ArrayCamera 多视角相机详解+示例代码
  • 亮剑浦江丨上海网信部门处罚一批医疗服务类互联网企业,三大类问题值得关注
  • 南阳市委原书记朱是西被“双开”:搞劳民伤财的“政绩工程”
  • 中青报:“猿辅导员工猝死”事件上热搜,是对健康职场环境的共同关切
  • 阿联酋启动第三届全球航空奖评选,奖金总额达百万美元
  • 财政部:前3月国有企业利润总额10907.4亿元,同比增1.7%
  • 全国首例!上市公司董监高未履行公开增持承诺,投资者起诉获赔