Vector:(顺序表【数组存储】)

1.当申请的空间不足的时候,需要再次开辟一块更大的空间,并把值拷过去。

2.对于尾删和尾插是比较方便的,只需要改动最后一个元素即可。不会改动原有的空间。适用于多次重复的对尾部插删。

3.顺序存储,地址是连续的。

4.头插和头删都需要移动一定的大小。时间复杂度为o(N)。而链表只需o(1)。

List:(链表)

1.需要每次都创建节点。

2.适用于头删尾插,但是不适用于多次重复的插删,因为每次都得创建节点,释放节点,消耗是比较大的。

3.非顺序存储,地址不连续。

4.由于节点之间地址是不连续的,所以会产生内存碎片问题。

如图:

List和Vector还有一个重要的点是:

Vector的CPU缓存利用率比链表高。

简单阐述一下:


那么,Vector/List与Stack/Queue有什么联系呢?

Stack:[栈](后进先出)

对于栈来说,后进先出,所以是对尾部进行插删操作,和Vector(尾插尾删较方便)是类似的。

Queue:[队列](先进先出)

对于队列来说,是先进先出的。所以,对头部删除,尾部插入是比较方便的,刚好和链表(List)是类似的。

一般情况下,我们会用Vector来模拟实现栈;用List来模拟实现队列。

Stack/Queue与Vector/List的联系相关推荐

  1. programming review (c++): (1)vector, linked list, stack, queue, map, string, bit manipulation

    编程题常用知识点的review. most important: 想好(1)详尽步骤(2)边界特例,再开始写代码. I.vector #include <iostream> //0.头文件 ...

  2. [C++](13)stack queue priority_queue 模拟实现:容器适配器,deque介绍,仿函数详解

    文章目录 使用 stack 栈 queue 队列 priority_queue 优先级队列 什么是容器适配器? deque 容器简单介绍 模拟实现 stack queue priority_queue ...

  3. Java集合类学习-LinkedList, ArrayList, Stack, Queue, Vector

    Collection List 在Collection的基础上引入了有序的概念,位置精确:允许相同元素.在列表上迭代通常优于索引遍历.特殊的ListIterator迭代器允许元素插入.替换,双向访问, ...

  4. C++学习笔记(STL篇)string vector迭代器 stack queue

    字符串基本操作 初始化string对象的方式: string s1 默认初始化,s1是一个空串 string s2(s1) s2是s1的副本 string s2 = s1 等价于s2(s1),s2是s ...

  5. C++stl 向量,链表,栈,队列(vector, list, stack, queue)

    随机存取的向量-vector #include <iostream> #include <vector> #include<algorithm> using nam ...

  6. C++ Stack Queue priority_queue

    栈stack:stack 后入先出(LIFO) q.top() 获取栈顶元素(并不删除) q.pop() 删除栈顶元素 q.push(x) 向栈中加入元素 q.empty() 判断栈是否为空 队列qu ...

  7. stl的set,multiset, map, multimap, deque, list, stack, queue, priority_queue

    set实际上是平衡二叉树,需要声明头文件#include<set> Insert:将元素插入集合中 使用前向迭代器对集合中序遍历 使用反向迭代器reverse_iterator可以反向遍历 ...

  8. C++ STACK Queue

    STL--stack/queue的使用方法 2010-01-05 17:36 stack(栈)和queue(队列)也是在程序设计中经常会用到的数据容器,STL为我们提供了方便的stack(栈)的que ...

  9. 模拟stack/queue/priority_queue

    stack要点 1.stack遵从先进后出的规则,即先进栈的元素后出栈,入栈/出栈只能在栈的一端进行 2.stack是作为容器适配器被实现的,容器适配器是对特定类进行封装,作为其底层的容器 3.sta ...

最新文章

  1. struts2提交list
  2. AI产业链全景图!【物联网智商精选】
  3. javascript简单的四则运算
  4. 策略模式优化过多的IF ELSE
  5. android 分支管理,Android Studio git使用,包括协同开发,分支管理。
  6. h3c服务器安装linux,H3C服务器安装Ubuntu操作系统
  7. Flask之threading.loacl方法
  8. CentOS 5.3 安装nginx+mysql+php
  9. 如何编译文件(gcc + nasm)
  10. golang 切片 接口_如何理解Golang中的接口?
  11. MFC开发IM--MFC非模态对话框的创建及显示
  12. 哪些版本linux支持arm,腾讯QQ Linux版本正式回归 支持x64 ARM64 MIPS64架构
  13. 外文文献怎么找?5个免费图书馆和网站帮你下载90%的外文文献!
  14. 机械优化设计c语言鲍威尔法,机械优化设计鲍威尔法
  15. 横向合计代码 锐浪报表_报表开发常见问题解答 - 锐浪报表工具
  16. Creator3D新版本震撼来袭
  17. sh: arithmetic expression: expecting primary
  18. Centos7 | etc 目录下文件详解
  19. matlab里comb用法,comb_comb的意思和用法搭配
  20. 建房遮阳标准的计算机方法,农村建房遮阴计算标准,看看怎么计算?

热门文章

  1. element实现动态路由+面包屑
  2. python笔记30-docstring注释添加变量
  3. 2017.3.23下午
  4. MySQL 导出命令
  5. 关于ORA-04021解决办法(timeout occurred while waiting to lock object)
  6. javascript 事件委派
  7. Object之MemberwiseClone方法
  8. mysql 帐号开启远程_两大步骤教您开启MySQL 数据库远程登陆帐号
  9. arcgis已试图对空几何执行该操作_ArcGIS中地理配准与空间校正的不同
  10. 正确退出activity_如何退出Activity