61 lines
1.4 KiB
C++
61 lines
1.4 KiB
C++
#include<bits/stdc++.h>
|
||
|
||
using namespace std;
|
||
|
||
/*
|
||
知识点内容:STL 双端队列deque详解
|
||
|
||
Deque(双端队列)是一种具有队列和栈的性质的数据结构。双端队列的元素可以从两端弹出,其限定插入和删除操作在表的两端进行。
|
||
文档内容参考:
|
||
https://www.cnblogs.com/aiguona/p/7281739.html
|
||
*/
|
||
|
||
using namespace std;
|
||
|
||
int main() {
|
||
deque<int> ideq(20); //Create a deque ideq with 20 elements of default value 0
|
||
deque<int>::iterator pos;
|
||
int i;
|
||
|
||
//赋值
|
||
for (i = 0; i < 20; ++i)
|
||
ideq[i] = i;
|
||
|
||
//输出deque
|
||
printf("输出deque中数据:\n");
|
||
for (i = 0; i < 20; ++i)
|
||
printf("%d ", ideq[i]);
|
||
putchar('\n');
|
||
|
||
//在头尾加入新数据
|
||
printf("\n在头尾加入新数据...\n");
|
||
ideq.push_back(100);
|
||
ideq.push_front(i);
|
||
|
||
//输出deque
|
||
printf("\n输出deque中数据:\n");
|
||
for (pos = ideq.begin(); pos != ideq.end(); pos++)
|
||
printf("%d ", *pos);
|
||
putchar('\n');
|
||
|
||
//查找
|
||
const int FINDNUMBER = 19;
|
||
printf("\n查找%d\n", FINDNUMBER);
|
||
pos = find(ideq.begin(), ideq.end(), FINDNUMBER);
|
||
if (pos != ideq.end()) {
|
||
printf("find %d success\n", *pos);
|
||
} else
|
||
printf("find failed\n");
|
||
|
||
//在头尾删除数据
|
||
printf("\n在头尾删除数据...\n");
|
||
ideq.pop_back();
|
||
ideq.pop_front();
|
||
|
||
//输出deque
|
||
printf("\n输出deque中数据:\n");
|
||
for (pos = ideq.begin(); pos != ideq.end(); pos++)
|
||
printf("%d ", *pos);
|
||
putchar('\n');
|
||
return 0;
|
||
} |