当前位置: 首页 > 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 多视角相机详解+示例代码
  • 全国林业院校校长论坛举行,聚焦林业教育的创新与突破
  • 夜读丨什么样的前程值得把春天错过
  • 消息人士称俄方反对美国代表参加俄乌直接会谈
  • 商务部:长和集团出售港口交易各方不得规避审查
  • 张涌任西安市委常委,已卸任西安市副市长职务
  • 奥迪车加油时频繁“跳枪”维修两年未解决,4S店拒退换:可延长质保