C++双端队列deque学习
双端队列(deque)是一种具有队列和栈特性的数据结构。它是由一系列的节点组成,每个节点包含了一个值以及连接前驱节点和后继节点的指针。这种数据结构允许在队列的头或尾快速添加或删除节点,具有高效的随机访问特性。在C++中的deque容器是双端队列的一种实现,很方便实现其中的功能。
如何定义deque容器
#include <deque>
using namespace std;
deque<int> dq;
以上代码定义了一个存储int类型的deque容器。
如何在deque头部和尾部插入元素
dq.push_front(1); //在头部插入1
dq.push_back(2); //在尾部插入2
以上代码展示了在deque的头部和尾部插入元素的方法,push_front方法表示在头部插入,push_back方法表示在尾部插入。
如何从deque头部和尾部删除元素
dq.pop_front(); //删除头部元素
dq.pop_back(); //删除尾部元素
以上代码展示了从deque的头部和尾部删除元素的方法,pop_front方法表示删除头部元素,pop_back方法表示删除尾部元素。
如何访问deque中的元素
deque<int>::iterator it;
for(it=dq.begin(); it!=dq.end(); it++){
cout<<*it<<" "; //访问deque中的元素
}
以上代码展示了如何访问deque中的元素,使用迭代器iterator遍历deque容器,并使用指针访问每个元素。
如何在deque容器中查找元素
deque<int>::iterator it;
it = find(dq.begin(), dq.end(), 2); //查找容器中的2
if(it != dq.end()){
cout<<"2 is found in deque."<<endl;
}else{
cout<<"2 is not found in deque."<<endl;
}
以上代码展示了如何在deque容器中查找元素,使用STL算法中的find函数查找deque中是否存在给定元素。
如何使用deque容器中的迭代器
deque<int>::iterator it;
for(it=dq.begin(); it!=dq.end(); it++){
*it = 2*(*it); //将deque中的元素都扩大2倍
}
以上代码展示了使用deque容器中的迭代器,将容器中的每个元素都扩大2倍。
以上是关于C++双端队列deque的一些基本操作。deque容器不仅可以像栈和队列一样存储数据,还具有高效的随机访问特性,是一种十分实用的数据结构。