STL之deque 【双端队列】
deque:双端队列是 C++ 标准库中的一种容器,它允许高效地从两端添加和删除元素。deque
是一个动态数组,支持快速随机访问,并且可以在前端和后端高效地执行插入和删除操作。文章来源:https://www.toymoban.com/news/detail-805097.html
头文件:
#include <deque>
using namespace std;
创建deque
deque<int> myDeque;
添加元素
-
push_back(value)
:在双端队列的末尾插入元素。 -
push_front(value)
:在双端队列的开头插入元素。
myDeque.push_back(2);
myDeque.push_front(1);
删除元素:
-
pop_back()
:从双端队列的末尾删除元素。 -
pop_front()
:从双端队列的开头删除元素。
myDeque.pop_back();//队尾删除
myDeque.pop_front();//队头删除
//5.删除指定位置元素,在指定位置插入元素
deque<int>::iterator it = myDeque.begin();
advance(it, 2);
it=myDeque.erase(it);//更新it,返回的是删除元素的原来的索引
myDeque.insert(it,40);//在刚刚被删除元素的原来位置插入一个新的元素
修改元素:
myDeque[0] = 20;//可以直接索引修改,索引有可能会越界
myDeque.at(1) = 30;//可以直接索引修改,会抛出异常
访问元素:
-
at(index)
:根据索引访问元素,抛出异常以处理越界情况。 -
front()
:访问队列的第一个元素。 -
back()
:访问队列的最后一个元素。
//4.访问元素
cout << "队列第一个元素:" << myDeque.front() << " 队列最后一个元素:" <<myDeque.back() <<endl;
cout << "队列第3个元素:" << myDeque.at(2) << endl;
遍历队列deque
//6.遍历队列
for (int element : myDeque) {
cout << element << " ";
}
综合示例:
#include <iostream>
#include <list>
#include <string>
#include <deque>
using namespace std;
int main() {
//1.创建队列
deque<int> myDeque;
//2.添加元素
myDeque.push_back(2);
myDeque.push_back(3);
myDeque.push_back(4);
myDeque.push_back(5);
myDeque.push_back(6);
myDeque.push_front(1);
//3.删除元素
myDeque.pop_back();//队尾删除
myDeque.pop_front();//队头删除
//4.访问元素
cout << "队列第一个元素:" << myDeque.front() << " 队列最后一个元素:" <<myDeque.back() <<endl;
cout << "队列第3个元素:" << myDeque.at(2) << endl;
//5.删除指定位置元素,在指定位置插入元素
deque<int>::iterator it = myDeque.begin();
advance(it, 2);
it=myDeque.erase(it);//更新it,返回的是删除元素的原来的索引
myDeque.insert(it,40);//在刚刚被删除元素的原来位置插入一个新的元素
myDeque[0] = 20;//可以直接索引修改,索引有可能会越界
myDeque.at(1) = 30;//可以直接索引修改,会抛出异常
//6.遍历队列
for (int element : myDeque) {
cout << element << " ";
}
return 0;
}
那么deque的用法就讲到这里,下一章看priority_queue的用法。关注我,为大家持续分享更多的内容,让学习变得更简单,与君共勉,共同成长。文章来源地址https://www.toymoban.com/news/detail-805097.html
到了这里,关于STL之deque 【双端队列】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!