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

STL的一些知识点

stack(栈)

后进先出(LIFO)结构,仅允许在栈顶进行插入和删除操作。

常用操作:

  • push(x):将元素x压入栈顶。
  • pop():移除栈顶元素。
  • top():返回栈顶元素。
  • empty():判断栈是否为空。
  • size():返回栈中元素数量。

queue(队列)

先进先出(FIFO)结构,元素从队尾入队,从队首出队。

常用操作:

  • push(x):将x加入队尾。
  • pop():移除队首元素。
  • front():返回队首元素。
  • back():返回队尾元素。
  • empty():判断队列是否为空。
  • size():返回队列元素数量。

deque(双端队列)

支持在两端高效插入和删除的线性结构。

常用操作:

  • push_back(x):在队尾插入x
  • push_front(x):在队首插入x
  • pop_back():移除队尾元素。
  • pop_front():移除队首元素。
  • front()/back():访问队首/队尾元素。
  • empty()/size():判断空或返回大小。
  • 优势:随机访问效率高(O(1)),适合滑动窗口问题。

map(映射)

  • 基于红黑树的有序键值对容器,键唯一且自动排序。

常用操作:

  • insert({key, value}):插入键值对。
  • erase(key):删除指定键的元素。
  • find(key):查找键,返回迭代器。
  • count(key):统计键是否存在(0或1)。
  • lower_bound(key):返回第一个不小于key的迭代器。
  • 元素:map[key](若键不存在会自动插入默认值)。

set(集合)

存储唯一元素的有序容器,基于红黑树实现。

常用操作:

  • insert(x):插入元素x
  • erase(x):删除元素x
  • find(x):查找元素,返回迭代器。
  • count(x):判断元素是否存在(0或1)。
  • lower_bound(x):返回第一个不小于x的迭代器。
  • 应用:去重、维护有序数据。

pair(键值对)

将两个值组合为单一对象,通常用于关联数据。

常用操作:

  • 初始化:pair<T1, T2> p(value1, value2)
  • 访问成员:p.first(第一个元素)、p.second(第二个元素)。
  • 比较操作:按first优先,second次之的顺序比较。

应用:作为map的键值对、返回多个值(如函数返回值)。

http://www.dtcms.com/a/280308.html

相关文章:

  • C/C++宏定义中do{}while(0)的妙用
  • CAS单点登录架构详解
  • 弗兰肯斯坦式的人工智能与GTM策略的崩溃
  • (LeetCode 每日一题) 3136. 有效单词 (字符串)
  • 【牛客LeetCode数据结构】单链表的应用——移除链表元素问题、链表分割问题详解
  • 从零构建鸿蒙应用:深度解析应用架构与项目结构
  • MIPI DSI(五) DBI 和 DPI 格式
  • 3.2数据库-关系代数-函数依赖-范式
  • Pitaya 是一个简单、快速、轻量级的游戏服务器框架,它为分布式多人游戏和服务器端应用程序提供了一个基本的开发框架
  • java的BO VO PO DO等对象的统称
  • 【Numba】正确使用numba,让你的python代码原地起飞!
  • 【转】Rust: PhantomData,#may_dangle和Drop Check 真真假假
  • 022_提示缓存与性能优化
  • 程序“夯住“的常见原因
  • 在物联网系统中时序数据库和关系型数据库如何使用?
  • 深入掌握Python正则表达式:re库全面指南与实战应用
  • .NET 10 Preview 1发布
  • OpenCV多尺度图像增强算法函数BIMEF()
  • 算法第23天|贪心算法:基础理论、分发饼干、摆动序列、最大子序和
  • iOS 加固工具使用经验与 App 安全交付流程的实战分享
  • react的Fiber架构和双向链表区别
  • 小架构step系列15:白盒集成测试
  • 大型语言模型(LLM)的技术面试题
  • 如何防止直线电机模组在高湿环境下生锈?
  • 《每日AI-人工智能-编程日报》--2025年7月15日
  • Volo-HTTP 0.4.0发布:正式支持 HTTP/2,客户端易用性大幅提升!
  • AI大模型训练的云原生实践:如何用Kubernetes指挥千卡集群?
  • Node.js 中http 和 http/2 是两个不同模块对比
  • Windows 安装 nvm-windows(Node.js 版本管理器)
  • 一键部署 Prometheus + Grafana + Alertmanager 教程(使用 Docker Compose)