C++ STL-deque双向队列
deque双向队列是一种双向开口的连续线性空间,可以高效的在头尾两端插入和删除元素,deque在接口上和vector非常相似,下面列出deque的常用成员函数:
代码
注释写了
//双向队列
#include<deque>
#include<cstdio>
#include<algorithm>
const int MAX_N = 20;
using namespace std;
int main(){
deque<int> ideq(MAX_N);
deque<int>::iterator pos;
int i;
// 进行赋值
for (i = 0; i < MAX_N; i++) {
ideq[i] = i;
}
// 输出deque
for (i = 0; i < MAX_N; i++) {
printf("%d ", ideq[i]);
}
// 在头部和尾部加入数据
puts("");
puts("在头部和尾部加入数据");
ideq.push_back(100); // 尾部
ideq.push_front(101); //头部
// 输出deque的数据
for (pos = ideq.begin(); pos != ideq.end(); pos++) {
printf("%d ", *pos);
}
puts("");
//查找
const int FIND_NUMBER = 12;
printf("查找数据%d\n", FIND_NUMBER);
pos = find(ideq.begin(), ideq.end(), FIND_NUMBER);
if (pos != ideq.end()) {
printf("成功找到! %d\n", *pos);
} else {
printf("失败!\n");
}
// 在头部和尾部删除数据
puts("在头部和尾部删除数据");
ideq.pop_back();
ideq.pop_front();
// 再次输出数据
puts("再次输出数据!");
for (pos = ideq.begin(); pos != ideq.end(); pos++) {
printf("%d ", *pos);
}
return 0;
}
运行输出:
2016年1月11日14:53:17 记录一下