您当前的位置: 首页 >  容器

微凉秋意

暂无认证

  • 0浏览

    0关注

    110博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

<C++>快速掌握双端数组容器deque的使用

微凉秋意 发布时间:2022-07-22 05:45:00 ,浏览量:0

✅作者简介:C/C++领域新星创作者,为C++和java奋斗中 ✨个人主页:微凉秋意的主页 🔥系列专栏:C++STL快速上手 📃推荐一款模拟面试、刷题神器👉注册免费刷题

🔥前言

书接上文,今天分享的是和vector容器功能很像的容器——deque,了解deque容器的本质,使用方法以及与vector容器的不同之处,再后面的文章里会有vector和deque容器结合的具体案例分享给大家。

文章目录
  • deque容器的概念模型
  • deque容器的基本操作
    • 构造函数
    • 赋值操作
    • 容器大小
    • 插入和删除
    • 数据存取
    • 排序
  • 结语

deque容器的概念模型

是双端数组,可以对头部进行插入删除操作

  • 示意图 在这里插入图片描述

值得注意的是deque容器比vector容器多了头插、头删的操作以及front()back(),后面这两个分别代表容器的第一个元素和最后一个元素,并不是迭代器,调用他们会得到具体的值。

deque与vector的区别:

  1. vector对于头部的插入删除效率低,数据量越大,效率越低
  2. deque相对而言,对头部的插入删除速度会比vector快
  3. vector访问元素时的速度会比deque快,这和两者内部实现有关

deque的内部工作原理:

  • deque内部有个中控器,维护每段缓冲区中的内容,缓冲区中存放真实数据。
  • 中控器维护的是每个缓冲区的地址,使得使用deque时像一片连续的内存空间
  • deque的迭代器也是支持随机访问的
  • 图示: 在这里插入图片描述

deque进行插入的时候是在结点对应的缓冲区操作的,缓冲区不有位置的时候直接插入到缓冲区中,缓冲区满的话就开辟新节点,再进行插入,所以才说像是连续的存储空间。

deque容器的基本操作

包括构造方法、赋值、计算大小、插入删除等

构造函数
  • deque容器的构造

函数原型

  • deque deq;其中T是泛型,用来存放数据类型,这是默认构造函数,较为常用
  • deque(deq.begin(),deq.end()); 将[deq.begin(),deq.end)前闭后开的区间内的元素拷贝给本身容器
  • deque(n,elem);构造函数将n个elem值拷贝给本身容器
  • deque(const deque &ans);拷贝构造函数

代码示例:

//打印
void printDeque(const deque& d)//只读容器不可改
{//迭代器变为 const_iterator
	for (deque::const_iterator it = d.begin(); it != d.end(); it++)
	{
		cout             
关注
打赏
1664596500
查看更多评论
0.0395s