【C++ 所有STL容器简介】

【C++ 所有STL容器简介】

      • 1. `vector`
      • 2. `list`
      • 3. `deque`
      • 4. `set` / `multiset`
      • 5. `map` / `multimap`
      • 6. `unordered_set` / `unordered_multiset`
      • 7. `unordered_map` / `unordered_multimap`
      • 8. `stack`
      • 9. `queue`
      • 10. `priority_queue`

C++ 标准模板库(STL)提供了一系列常用的容器,用于存储和管理数据。以下是 C++ STL 中常用的容器及其简介:

1. vector

  • 简介:动态数组,支持高效的随机访问和在尾部插入删除操作。
  • 特点:连续内存存储、动态增长容量。
  • 常用操作push_back(), pop_back(), at(), size(), empty()等。

2. list

  • 简介:双向链表,支持高效的插入和删除操作。
  • 特点:非连续内存存储,所需空间相对更多,但插入删除更快。
  • 常用操作push_back(), push_front(), pop_back(), pop_front(), insert(), erase()等。

3. deque

  • 简介:双端队列,支持高效的在头尾插入删除操作。
  • 特点:双端操作效率高,支持随机访问。
  • 常用操作push_back(), push_front(), pop_back(), pop_front(), at(), size()等。

4. set / multiset

  • 简介:有序集合,set中元素唯一、multiset可重复。
  • 特点:基于红黑树实现,快速查找、插入、删除。
  • 常用操作insert(), find(), erase(), size(), empty()等。

5. map / multimap

  • 简介:有序键值对集合,map中键唯一、multimap可重复。
  • 特点:基于红黑树实现,快速按键查找、插入、删除。
  • 常用操作insert(), find(), erase(), size(), empty()等。

6. unordered_set / unordered_multiset

  • 简介:无序集合,unordered_set中元素唯一、unordered_multiset可重复。
  • 特点:基于哈希表实现,插入删除查找平均复杂度为 O(1)。
  • 常用操作insert(), find(), erase(), size(), empty()等。

7. unordered_map / unordered_multimap

  • 简介:无序键值对集合,unordered_map中键唯一、unordered_multimap可重复。
  • 特点:基于哈希表实现,插入删除查找平均复杂度为 O(1)。
  • 常用操作insert(), find(), erase(), size(), empty()等。

8. stack

  • 简介:堆栈,先进后出的容器适配器。
  • 特点:基于 dequelist 实现。
  • 常用操作push(), pop(), top(), empty(), size()等。

9. queue

  • 简介:队列,先进先出的容器适配器。
  • 特点:基于 dequelist 实现。
  • 常用操作push(), pop(), front(), back(), empty(), size()等。

10. priority_queue

  • 简介:优先队列,按照元素优先级顺序出队。
  • 特点:基于 vector 实现,默认最大堆。
  • 常用操作push(), pop(), top(), empty(), size()等。

这些是 C++ STL 中常用的容器,每种容器都有其适用的场景和特点。根据具体需求和性能要求,选择合适的容器能够提高程序效率和可维护性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/7908.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Backblaze发布2024 Q1硬盘故障质量报告-1

作为一家在2021年在美国纳斯达克上市的云端备份公司,Backblaze一直保持着对外定期发布HDD和SSD的故障率稳定性质量报告,给大家提供了一份真实应用场景下的稳定性分析参考数据。 截至2024年第一季度末,Backblaze在其全球数据中心的云存储服务器…

Lua 协程模拟 Golang 的 go defer 编程模式

封装go函数用于创建并启动一个协程: ---go函数创建并启动一个协程 ---param _co_task function 函数原型 fun(_co:thread) function go(_co_task)local co coroutine.create(_co_task) -- 创建一个暂停的协程coroutine.resume(co, co) -- 调用coroutine.resume激活…

弹性云服务器是什么,为何如此受欢迎

云计算作为当下炙手可热的技术领域,已然成为现代企业不可或缺的核心能力。云服务器作为云计算的基石之一,在这个数字化时代发挥着至关重要的作用。而弹性云服务器,作为云服务器的一种演进形式,更是备受瞩目。 弹性云服务器&#…

[笔记] Win11 Microsoft Store App 离线下载

微软应用商店无法下载或下载缓慢解决方法 在一些环境下 Microsoft Store 下载速度缓慢,或者需要账号登录才能安装的场景,可以通过找到对应的离线安装包的形式进行安装。 Micorsoft Store 中的离线安装包一般后缀为 AppxBundle 和 Appx。以 Ubuntu 为例…

如何根据IP获取国家省份城市名称PHP免费版

最近项目遇到需要根据IP获取用户国家功能需求,网上找了一下,很多API接口都需要付费,考虑为公司节约成本,就取找找有没有开源的 github 上面那个包含多种语言,下面这个只有php,用法很简单 $ip 114.114.114…

[蓝桥杯]真题讲解:班级活动(贪心)

[蓝桥杯]真题讲解&#xff1a;班级活动&#xff08;贪心&#xff09; 一、视频讲解二、正解代码1、C2、python33、Java 一、视频讲解 [蓝桥杯]真题讲解&#xff1a;班级活动&#xff08;贪心&#xff09; 二、正解代码 1、C #include<bits/stdc.h> using namespace st…

Linux 操作系统线程2

关于线程的基础函数功能和用法请看&#xff1a; Linux 操作系统&线程1-CSDN博客 目录 1、线程间通信 2、线程的同步和互斥 2.1、互斥锁 2.1.1 定义/初始化一个互斥锁 2.2.1 加锁 2.2.2 解锁 2.2.3 销毁锁 3 条件变量 3.1 创建并且初始化一个条件变量 3.1.1 …

【NodeMCU实时天气时钟温湿度项目 4】通过NTPClient库获取实时网络时间并显示在TFT屏幕上

今天是【实时天气时钟温湿度项目】第四专题&#xff0c;主要内容是&#xff1a;学习导入NTPClient库&#xff0c;通过这个库获取实时网络时间&#xff0c;显示在1.3寸TFT液晶屏幕上。此前三个专题&#xff0c;请选择查看以下链接。 第一专题内容&#xff0c;请参考 【N…

使用wxPython和pandas模块生成Excel文件

介绍&#xff1a; 在Python编程中&#xff0c;有时我们需要根据特定的数据生成Excel文件。本文将介绍如何使用wxPython和pandas模块来实现这个目标。我们将创建一个简单的GUI应用程序&#xff0c;允许用户选择输出文件夹和输入的Excel文件&#xff0c;并根据Excel文件中每个单…

docker jenkins 部署springboot项目

1、创建jenkins容器 1&#xff0c;首先&#xff0c;我们需要创建一个 Jenkins 数据卷&#xff0c;用于存储 Jenkins 的配置信息。可以通过以下命令创建一个数据卷&#xff1a; docker volume create jenkins_data启动 Jenkins 容器并挂载数据卷&#xff1a; docker run -dit…

算法-并查集

目录 什么是并查集 并查集基础 &#xff08;1&#xff09;原理 &#xff08;2&#xff09;初始化 &#xff08;3&#xff09;查询 &#xff08;4&#xff09;合并 &#xff08;5&#xff09;判断是否同一集合 并查集优化 路径压缩 启发式合并 并查集模板 模板 例题…

C#修改默认参数settings文件

右击项目在设置中进行修改&#xff1a; 千万不要在这里改。 如果要在自己的项目里添加这个文件&#xff0c;首先新建个文件夹&#xff0c;然后添加.setting文件&#xff0c;然后再像上面说的那样添加属性。

【TypeScript接口简介以及使用方法】

TypeScript 接口&#xff08;Interfaces&#xff09;是一种定义对象形状的方式&#xff0c;它只定义对象的类型&#xff0c;但不包含实现。接口在 TypeScript 中被用来定义对象的结构&#xff0c;以确保对象具有某些特定的属性和方法。 接口简介 定义对象形状&#xff1a;接口…

Google 开源项目风格指南

谷歌C开源项目编码规范&#xff1a;C 风格指南 - 内容目录 — Google 开源项目风格指南 (zh-google-styleguide.readthedocs.io)

4.请求体

什么是请求体(Request Body) 请求体是客户端发送到API的数据。 响应体是API发送给客户端的数据 API几乎总是必须发送一个响应体&#xff0c;但是客户端并不需要一直发送请求体 定义请求体&#xff0c;需要使用 Pydantic 模型 不能通过GET请求发送请求体发送请求体数据&…

常见的容器技术有哪些

容器技术是一种轻量级的软件封装方式&#xff0c;它将软件代码及其依赖项打包在一起&#xff0c;这样应用可以在任何支持容器的系统上无缝运行。它允许应用程序及其依赖项在一个隔离的环境中运行&#xff0c;这个环境被称为容器。容器技术有助于提高应用程序的可移植性、一致性…

深度学习之基于Tensorflow卷积神经网络智能体操健身系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 随着人们健康意识的提高和数字化技术的快速发展&#xff0c;智能健身系统逐渐成为健身领域的新趋势。…

Redis之Linux下的安装配置

Redis之Linux下的安装配置 Redis下载 Linux下下载源码安装配置 方式一 官网下载&#xff1a;https://redis.io/download ​ 其他版本下载&#xff1a;https://download.redis.io/releases/ 方式二&#xff08;推荐&#xff09; GitHub下载&#xff1a;https://github.com/r…

景源畅信:个人抖音小店怎么开通?

在数字时代的浪潮中&#xff0c;个体创业已不再是遥不可及的梦想。特别是随着短视频平台的崛起&#xff0c;抖音不仅成为人们娱乐消遣的新宠&#xff0c;更是众多创业者眼中的“新大陆”。你是否也曾憧憬过在抖音上开一家属于自己的小店?那么&#xff0c;如何开通个人抖音小店…

面向对象编程与面向过程编程和函数式编程之间的区别

目录 1.引言 2.面向过程编程 3.面向对象编程和面向过程编程的对比 4.函数式编程 5.面向对象编程和函数式编程的对比 1.引言 面向对象编程是现在流行的编程范式(编程风格)。实际上&#xff0c;除面向对象编程以外&#xff0c;大家熟悉的编程范式还有另外两种:面向过程编程和…