C++中deque的用法(超详细,入门必看)

这篇具有很好参考价值的文章主要介绍了C++中deque的用法(超详细,入门必看)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

博主简介:Hello大家好呀,我是陈童学,一个与你一样正在慢慢前行的人。
博主主页:@陈童学哦
所属专栏:C++STL
如果本文对你有所帮助的话,希望可以点赞👍收藏📂支持一下哦!
期待你的关注,一起成长哟!

C++中deque的用法(超详细,入门必看)

前言:Hello各位小伙伴们好!欢迎来到本专栏C++STL的学习,本专栏旨在帮助大家了解并熟悉使用C++中的STL,C++中的STL(标准模板库)是相当好用的,🍉🍉🍉所以大家赶紧订阅一起学起来叭!那么话不多说接下来就进入本文C++中deque的学习。

⭐一、deque的简介

deque是一个双向队列(double-ended queue),可以在队列的两端进行元素的插入和删除操作。deque的全称是double-ended queue,翻译过来就是双端队列,也有人称之为双向队列,这两个名称都可以表示该数据结构。deque是C++STL(标准模板库)中的一种容器,可以用于存储各种类型的元素。deque的特点是可以在队列的两端进行元素的操作,并且可以高效地在队列的任意位置进行元素的插入和删除操作。
可以说deque几乎涵盖了queue(队列)、stack(堆栈)、vector(向量 )等的全部用法,功能非常的强大。

使用queue时需要包含头文件:

#include<deque>

⭐二、deque的定义及初始化

  • 定义
    deque<数据类型>容器名
    例:
//deque的定义 
deque<int>d1; //定义一个储存数据类型为int的双端队列d1 
deque<double>d2; //定义一个储存数据类型为double的双端队列d2 
deque<string>d3; //定义一个储存数据类型为string的双端队列d3 
deque<结构体类型>d4; //定义一个储存数据类型为结构体类型的双端队列d4 
deque<int> d5[N]; //定义一个储存数据类型为int的双端队列数组d5 
deque<double>d6[N]; //定义一个储存数据类型为double的双端队列数组d6 

⭐三、deque的成员函数

关于deque的常用函数:

push_back()//在队列的尾部插入元素。
emplace_front()//与push_front()的作用一样 
push_front()//在队列的头部插入元素。
emplace_back()//与push_back()的作用一样 
pop_back()//删除队列尾部的元素。
pop_front()//删除队列头部的元素。
back()//返回队列尾部元素的引用。
front()//返回队列头部元素的引用。
clear()//清空队列中的所有元素。
empty()//判断队列是否为空。
size()//返回队列中元素的个数。
begin()//返回头位置的迭代器
end()//返回尾+1位置的迭代器
rbegin()//返回逆头位置的迭代器 
rend()//返回逆尾-1位置的迭代器 
insert()//在指定位置插入元素 
erase()//在指定位置删除元素 

示例代码:

#include<iostream>
#include<deque>
using namespace std;
int main()
{
	deque<int> d; //定义一个数据类型为int的deque
	d.push_back(1); //向队列中加入元素1 
	d.push_back(2); //向队列中加入元素2
	d.push_back(3); //向队列中加入元素3
	d.push_back(4); //向队列中加入元素4
	cout<<"双端队列中现在的元素为:"<<endl;
	for(int i=0;i<d.size();i++)
	{
		cout<<d[i]<<" ";
	}
	cout<<endl;
	d.pop_front();
	cout<<"弹出队首元素后,双端队列中现在的元素为:"<<endl;
	for(int i=0;i<d.size();i++)
	{
		cout<<d[i]<<" ";
	}
	cout<<endl;
	d.pop_back();
	cout<<"弹出队尾元素后,双端队列中现在的元素为:"<<endl;
	for(int i=0;i<d.size();i++)
	{
		cout<<d[i]<<" ";
	}
	cout<<endl;
	d.push_back(6);
	cout<<"在队尾添加元素6后,双端队列中现在的元素为:"<<endl;
	for(int i=0;i<d.size();i++)
	{
		cout<<d[i]<<" ";
	}
	cout<<endl;
	d.push_front(8);
	cout<<"在队首添加元素8后,双端队列中现在的元素为:"<<endl;
	for(int i=0;i<d.size();i++)
	{
		cout<<d[i]<<" ";
	}
}

运行结果:

双端队列中现在的元素为:
1 2 3 4
弹出队首元素后,双端队列中现在的元素为:
2 3 4
弹出队尾元素后,双端队列中现在的元素为:
2 3
在队尾添加元素6后,双端队列中现在的元素为:
2 3 6
在队首添加元素8后,双端队列中现在的元素为:
8 2 3 6

⭐四、deque的遍历方法

  • 1.通过迭代器iterator遍历
#include<iostream>
#include<deque>
using namespace std;
int main()
{
	deque<int> d; //定义一个数据类型为int的deque
	d.push_back(1); //向队列中加入元素1 
	d.push_back(2); //向队列中加入元素2
	d.push_back(3); //向队列中加入元素3
	d.push_back(4); //向队列中加入元素4
	deque<int>::iterator it;
	for(it=d.begin();it!=d.end();it++)
	{
		cout<<*it<<" ";
	}
}

运行结果:

1 2 3 4
  • 2.通过下标遍历
#include<iostream>
#include<deque>
using namespace std;
int main()
{
	deque<int> d; //定义一个数据类型为int的deque
	d.push_back(1); //向队列中加入元素1 
	d.push_back(2); //向队列中加入元素2
	d.push_back(3); //向队列中加入元素3
	d.push_back(4); //向队列中加入元素4
	for(int i=0;i<d.size();i++)
	{
		cout<<d[i]<<" ";
	}
}

运行结果:

1 2 3 4
  • 3.通过foreach遍历
#include<iostream>
#include<deque>
using namespace std;
int main()
{
	deque<int> d; //定义一个数据类型为int的deque
	d.push_back(1); //向队列中加入元素1 
	d.push_back(2); //向队列中加入元素2
	d.push_back(3); //向队列中加入元素3
	d.push_back(4); //向队列中加入元素4
	for(int it:d)
	{
		cout<<it<<" ";
	}
}

运行结果:

1 2 3 4

⭐五、写在最后

OK本文的学习就到此结束啦,希望本文可以帮助到各位有需要的小伙伴们喔,也希望各位小伙伴们可以不要吝惜手里的三连哦!感谢你们的支持,你们的支持就是我创作最大的动力哦!❤️❤️❤️

💕 回头看,轻舟已过万重山,向前看,前路漫漫亦漫漫。

🍁🍁🍁那么我们下期再见!拜拜ヾ(•ω•`)o
C++中deque的用法(超详细,入门必看)文章来源地址https://www.toymoban.com/news/detail-470324.html

到了这里,关于C++中deque的用法(超详细,入门必看)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C++入门前必看,超详细

    目录 前言 一.C++的  二.命名空间 2.1命名空间定义 2.2命名空间的使用 三.C++的输入及输出 四.缺省参数 4.1概念  4.2缺省参数分类 4.3缺省参数的注意点 五.引用 5.1 概念 5.2引用的特性 六.内联函数 6.1概念  6.2内联函数的特性 七.auto 7.1auto概念 7.2auto的使用准则 八.基于范围

    2024年02月09日
    浏览(36)
  • 【C++】deque的用法

    在了解deque前,我们先讲一讲什么是适配器。 适配器是一种设计模式 (设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结), 该种模式是将一个类的接口转换成客户希望的另外一个接口。 就像我们生活中常见的充电器一样。 在STL中,虽然

    2024年02月08日
    浏览(35)
  • C++ STL之 queue和deque用法详解

    1.1 创建queue对象: queue数据类型,容器类型 q; 数据类型:可以是int、double等基本类型,也可以是自定义的结构体。 容器类型:一般为deque或者list(双向链表),可省略,省略时以deque为默认容器。 声明代码如下: 只能队尾插入,队首弹出。无法index遍历,也不可以迭代器遍

    2023年04月10日
    浏览(35)
  • C++ STL第三篇(搞清楚deque原理和有多少用法)

    Vector容器是单向开口的连续内存空间,deque则是一种双向开口的连续线性空间。所谓的双向开口,意思是可以在头尾两端分别做元素的插入和删除操作,当然,vector容器也可以在头尾两端插入元素,但是在其头部操作效率奇差,无法被接受。 Deque容器和vector容器最大的差异,

    2024年03月17日
    浏览(39)
  • 【C++入门到精通】C++入门 —— deque(STL)

    文章绑定了VS平台下std::deque的源码,大家可以下载了解一下😍 前面我们讲了C语言的基础知识,也了解了一些数据结构,并且讲了有关C++的命名空间的一些知识点以及关于C++的缺省参数、函数重载,引用 和 内联函数也认识了什么是类和对象以及怎么去new一个 ‘对象’ ,以及

    2024年02月12日
    浏览(43)
  • C++ 引用(&)的超详细解析(小白必看系列)

    目录 一、前言  二、引用的概念介绍 三、引用的五大特性   💦  引用在定义时必须初始化  💦 一个变量可以有多个引用   💦 一个引用可以继续有引用 💦 引用一旦引用一个实体,再不能引用其他实体  💦 可以对任何类型做引用【变量、指针…】  四、引用的两种

    2024年02月03日
    浏览(52)
  • Android Studio入门级教程(详细)【小白必看】[通俗易懂]

    Android Studio如何使用 本文主要讲解一下Android Studio使用方法 步骤: 1.建立项目 首先点击new——new project新建项目 选择想要创建的Android 的模板,建议选择empty activity(空模板),然后next Name:给你的项目起一个名字 API level:选择Android 虚拟机的版本,版本越低运行起来越快 剩

    2024年02月08日
    浏览(55)
  • python机器学习入门之opencv的使用(超详细,必看)

    源码及图片请点赞关注收藏后私信博主要  opencv 广泛用于多种于计算机视觉和机器学习相关的算法 其用C++语言编写 ,主要接口也是C++语言 但也有 python等环境的接口 接下来我们着重介绍他的使用。 opencv python是一个用于解决计算机视觉问题的python库  opencv python与numpy兼容 数

    2024年02月15日
    浏览(40)
  • deque用法深度解析,一篇文章弄懂deque容器各种操作

    🖱 博客主页:在下马农的碎碎念 ✍ 本文由在下马农原创,首发于CSDN 📆 首发时间:2022/01/11 📅 最近更新时间:2022/01/11 🤵 此马非凡马,房星本是星。向前敲瘦骨,犹自带铜声。 📇 系列文章目录: 暂无 🙏作者水平有限,如发现错误,请留言轰炸哦!万分感谢! 🤗码字不

    2023年04月24日
    浏览(51)
  • Python:【基础语法】 deque()用法

    Python中的标准库collections中有一个deque,该对象与list列表相似。这里的“双向”指的是deuqe的结构使用双向链表,它提供了两端都可以操作的序列,这意味着,我们可以在序列前后都执行添加或删除。大多操作与List相同,如访问元素,求序列长度等,同样deque序列中的元素类型

    2023年04月13日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包