C++双端队列deque学习

527 阅读1分钟

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容器不仅可以像栈和队列一样存储数据,还具有高效的随机访问特性,是一种十分实用的数据结构。