STL中的deque介绍--- double-ended queue

来源:互联网 发布:linux c语言编程 编辑:程序博客网 时间:2024/05/18 01:05

             deque即双向队列(double-ended queue),是一种在两端开口的连续线性空间,可以高效的在头尾两端插入和删除元素。 在deque中, 我们要尽量避免erase队列中间的元素, 这样效率低。 要erase怎么办? 还是用list吧。 不多说, 来认识一下deque:

#include <deque>#include <iostream>#include <algorithm>#define N 10using namespace std;int main(){deque<int> deq(N);deque<int>::iterator it;int i = 0;for (i = 0; i < N; ++i){deq[i] = i + 1;}for (i = 0; i < N; ++i){printf("%d ", deq[i]); // 1 2 3 4 5 6 7 8 9 10}printf("\n");deq.push_back(50); deq.push_front(30);for (it = deq.begin(); it != deq.end(); it++){printf("%d ", *it); // 30 1 2 3 4 5 6 7 8 9 10 50}printf("\n");int toBeFound = 999;it = find(deq.begin(), deq.end(), toBeFound);if (it != deq.end()){printf("yes\n");}else{printf("no\n"); // no}deq.pop_back();deq.pop_front();for (it = deq.begin(); it != deq.end(); it++){printf("%d ", *it); // 1 2 3 4 5 6 7 8 9 10}printf("\n");return 0;}


0 0