C++双端队列类模板

C++双端队列类模板

双端队列(deque)是一种随机访问的数据类型,提供了在序列两端快速插入和删除操作的功能,它可以在需要的时候修改其自身的大小,主要完成标准C++数据结构中队列的功能。

创建deque双端队列的方法:
#include<deque>		//调用deque头文件
	...
	...
deque<type>d;		//定义一个deque
//deque表示声明一个双端队列,<type>表示双端的类型,d表示双端队列名。
deque对象主要成员函数说明:

只是一些常用的,其它还有很多deque函数。

函数说明
at(n)返回双端队列中第n个元素
begin返回指向双端队列第一个元素的迭代器
end返回指向双端队列最后一个元素的迭代器
capcity返回双端队列的容量
size返回双端队列的大小
clear删除双端队列中所有元素
erase(start,end)删除迭代器从start到end范围内的向量
erase(i)删除迭代器第i个元素
insert(i,x)把值x插入到由迭代器指明的第i个位置
insert(i,start,end)把迭代器从start到end范围的元素插入到指明的第i个位置
insert(i,n,x)把x的n个副本插入到由迭代器指明的第i个位置
push_back(x)将值x放到双端队列末尾
push_front(x)将值x放到双端队列首部
pop_back删除双端队列最后一个元素
pop_front删除双端队列第一个元素
resize(n,x)设置双端队列大小为n,初始值为x
reverse颠倒元素的顺序
swap(deque)交换两个双端队列的内容

这里讲一下vector向量和deque双端队列的区别,vector向量基本不涉及push_front(x)、push_front(x)操作,你可以这样理解,因为vector向量是单向的,只对尾部操作,而deque双端队列是双向的,首部尾部都可操作。
但实际上vector使用人数更多。

关于vector向量的学习————》》C++向量类模板

deque双端队列入门应用

源代码:

#include<iostream>
#include<deque>
using namespace std;
int main(){
	
	deque<int>d;
	d.push_back(1);
	d.push_back(2);
	d.push_back(3);
	d.push_back(4);
	d.push_back(5);
	for(int i=0;i<d.size();i++)
		cout<<d[i]<<" ";
	cout<<endl;
	d.pop_front();
	d.pop_front();
	for(int i=0;i<d.size();i++)
		cout<<d[i]<<" ";
	cout<<endl;
	d[1]=8;
	for(int i=0;i<d.size();i++)
		cout<<d[i]<<" ";
		
	return 0;
} 

给大家做一下解释,

首先deque< int >d;定义一个双端队列,
然后通过d.push_back(x);操作不断往d的后面增加值,
添加完后d队列内的值是1 、2 、3 、4 、5,
之后通过d.pop_front();操作删除d的首部元素,
删除两次后,d变为3 、4 、5,
最后自定义d[1]=8,
最终d变为3 、8 、5 。

结果图:
deque

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值