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

【C++】 容器区别

1.Vector

  • 数组的一种类表示。
  • 自动内存管理功能,可以动态地改变vector对象的长度。
  • 提供对元素的随机访问。
  • 在尾部添加删除元素的时间是固定的,但在头部和中部插入删除元素的复杂度为线性时间。
  • 可反转容器概念模型,提供rbegin()和rend()。
  • 默认使用该类型

2.deque

  • 在STL中,实现类似vector容器,支持随机访问。
  • 开始位置插入删除的时间是固定的。所以如果多数操作发生在序列的起始和结尾处,应考虑deque。
  • 不一定是顺序存储

3.list

  • 双向链表
  • 任意位置插入删除的时间是固定的
  • vector强调的是通过随机访问进行快速访问,list强调的是元素的快速插入和删除
  • list模板类有链表专用的成员函数:merge(将两个有序链表合并成另一个有序链表)、remove、sort(使用<运算符排序)、splice(插入)、unique(连续的相同元素压缩成一个)

4.forward_list

  • 单链表

5.queue

  • 队列
  • 限制比deque更多。不允许随机访问,不允许遍历。
  • 可以把元素添加到队尾、从队首删除元素、查看队首和队尾的值、检查元素数目和检测队列是否为空

6.priority_queue

  • 默认底层类是vector。
  • 最大的元素被移到队首,可以修改确定的方式greater()

7.stack

  • 限制比vector多。不允许随机访问,不允许遍历。
  • 可以压入栈顶、从栈顶弹出元素、查看栈顶的值、检查元素数目、检测是否为空
  • 可queue相似。如果要使用栈中的值,首先使用top()检索这个值,然后用pop()将他弹出

8.array

  • 并非STL容器,因为其长度是固定的。
  • 不能调整容器大小,但像vector一样存在安全检索的at()。可以将很多标准STL算法用于他

相关文章:

  • flash 可以做网站吗/佛山百度推广电话
  • 广东东莞人才网/沈阳seo关键字优化
  • 政府站群网站怎么做/黄冈地区免费网站推广平台
  • 武威做网站的/发布
  • 莆田外贸网站建设/上海关键词排名优化价格
  • 开发公司利用员工身份贷款买房子/汕头搜索引擎优化服务
  • 【Qt】边学边写之Qt教程(零基础)
  • Python3,爬虫有多简单,一个库,一行代码,就OK, 你确定不来试试?
  • 【HTML5期末大作业】制作一个简单HTML我的班级网页(HTML+CSS+JS)
  • 12、乐趣国学—践行《弟子规》的“信”懂得处世之道(下篇)
  • 【JavaWeb】-JDBC详解、数据库连接池的认识
  • 推理证明RANSAC算法中迭代次数为何总设置为100,一看就懂,不懂请打我
  • 用于验证的verilog语法--1
  • 用keras的cnn做人脸分类
  • 通关 MySQL获奖名单已公布
  • 16 【react-router 6】
  • Docker-compose update db password
  • Zookeeper简介、原理和功能?