C++ STL学习(3)--Deque

本文介绍了C++中双端队列(deque)的基本操作,包括初始化、赋值、添加元素、删除元素、查找元素、插入元素等。通过示例代码展示了如何使用deque,并演示了其在实际编程中的应用,如迭代器的使用和算法的结合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include<deque>
#include<iostream>
#include<algorithm>

using namespace std;

void showDeque(deque<int> iDeque, int showTimes)
{
	cout << "This is " << showTimes << " deque's contents is: ";
	for (auto x : iDeque)
		cout << x<<" ";
	cout << endl <<"size :"<< iDeque.size()<<endl<<endl;


}

int main()
{
	cout << "This is deque tutorials " << endl<<endl;

	deque<int> iDeque(20, 9);   //初始化为20个9的双端队列
	showDeque(iDeque, 1);

	for (int i = 0; i < iDeque.size(); ++i)   //重新赋值
		iDeque[i] = i;
	showDeque(iDeque, 2);

	for (int i = 0; i < 3; ++i)
		iDeque.push_back(i);        //push_back(A) 末端添加A
	showDeque(iDeque, 3);

	iDeque.push_front(111);        //push_front(B) 首端添加B
	showDeque(iDeque, 4);

	iDeque.pop_back();            //pop_back() 删除末端
	showDeque(iDeque, 5);     
	iDeque.pop_front();           //pop_front() 删除首端
	iDeque.push_back(99);         //加一个末尾标志
	showDeque(iDeque, 6);

	deque<int>::iterator curent;
	curent = find(iDeque.begin(), iDeque.end(), 1);    //找到的依旧是前面的第一个1   如果没有找到返回end()迭代器
	cout << *curent++ << endl;
	cout<<*curent<<endl;

	iDeque.erase(curent);                     //erase(it) 删除it迭代器所指内容
	showDeque(iDeque, 7);

	curent = find(iDeque.begin(), iDeque.end(), 10);
	iDeque.erase(curent,curent+3);             //erase(curent,curent+3) 删除迭代器[curent,curent+3)所指内容
	showDeque(iDeque, 8);


	curent = find(iDeque.begin(), iDeque.end(), 9); 
	iDeque.insert(curent, 88);         //insert(curent, 88)  在迭代器所指位置插入值88
	showDeque(iDeque, 9);

	curent = find(iDeque.begin(), iDeque.end(), 9);   //插入完之后迭代器无效了
	iDeque.insert(curent,5,55);         //insert(curent,n, 88)  在迭代器所指位置插入值n个88
	showDeque(iDeque, 10);

	curent = find(iDeque.begin(), iDeque.end(), 9);   //插入完之后迭代器无效了
	int a[] = { 1,2,3,4,5 };
	std::deque<int>t(a, a + 5);
	iDeque.insert(curent, t.begin(),t.end());        //insert(pos,beg,end)插入区间[beg,end)到pos
	showDeque(iDeque, 11);


	iDeque.clear();        //清空双向队列
	showDeque(iDeque, 12);

}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值