queue
queue 队,一种先进先出的数据结构,c++ stl里也叫容器适配器,它是以deque 或list为基础的一种数据结构
queue的相关操作
queue<int deque<int>> q;
queue<int list<int>> q;
q.empty();
q.size();
q.push(item); //入队
q.pop(); //出队
q.back(); //返回对尾元素
q.front(); //返回队首元素
学习代码
#include <iostream>
#include <queue>
#include <deque>
#include <list>
using namespace std;
int main()
{
queue<int, deque<int>> a;
queue<int, list<int>> b;
queue<int> c;//默认以deque为基础
c.push(10);
c.push(5);
c.push(-1);
c.push(20);
cout << "队列里数据有" << c.size() << "个" << endl;
cout << "队首:" << c.front() << endl;
cout << "队尾:" << c.back() << endl;
c.pop();
cout << "新队首:" << c.front() << endl;
while (c.size() != 0)
{
cout << "删除" << c.front() << endl;
c.pop();
}
if (c.empty())
{
cout << "现在队列为空" << endl;
}
getchar();
return 0;
}
deque
双端队列,与vector很相似,在中间位置插入或删除元素的代价较大。vector和deque相比只能在尾部添加或删除元素,而deque可在首部删除或添加元素
定义和初始化
deque<T> d;
deque<T> d(d1);
deque<T> d=d1;
deque<T> d={a1,a2,a3,...}
deque的相关操作
push_back(val);
push_front(val);
pop_back();
pop_front();
distance(iterator it1,iteraotr it2) //在algorithm头文件中,计算2个迭代器所指元素之间的距离
学习代码
#include<iostream>
#include<deque>
#include<algorithm>
using namespace std;
int main()
{
deque<int> a;
a.push_back(3);
a.push_back(4);
a.push_back(5);
a.push_front(2);
a.push_front(1);
a.push_front(0);
a.pop_back();
a.pop_front();
/*for (deque<int>::size_type nCount = 0; nCount < a.size(); ++nCount)
{
cout << a[nCount] << endl;
}*///使用下标访问
for (deque<int>::iterator it = a.begin(); it != a.end(); ++it)
{
size_t nOffset = distance(a.begin(), it);
cout << *it << endl;
cout << *it << "与对首元素之间的距离:" << nOffset << endl;
}
getchar();
return 0;
}