deque其实和队列,栈差不多,但它可以两边都可以插入或删除元素,个人感觉用处更大一点
先把用法粘上2333:
插入篇: 尾部插入: push_back() 【头部】插入元素的函数 push_front() 提取篇: 3 bool empty() 判断 deque 容器是否已有元素,是则返回 true,否则返回 false 4 size_type size() 当前 deque 容器的元素个数 5 size_type max_size() 系统所支持的 deque 容器的最大元素个数 6 reference front() deque容器的首元素(引用返回),要求 deque 不为空 7 reference back() deque容器的末元素(引用返回),要求 deque 不为空 删除篇: void pop_front(); 删除 deque 的第一个元素 4 2. void pop_back(); 删除 deque 的最后一个元素 5 3. iterator erase(iterator pos); 删除 pos 所指向的元素 6 4. iterator erase(iterator first, iterator last); 删除 迭代器区间 [first, last) 所指向的所有元素。 7 5. void clear(); 删除所有元素嗯。。
用法这么多久差不多了,还用我举栗吗。。不看例子也要点个赞啊,我可是花了点时间整理的。。。;
好了。。。不废话,上栗子:
#include <iostream> #include <cstring> #include <deque> #include <queue> using namespace std; int main() { deque<int > s;//这里用int举栗。。。至于结构体我的那个走迷宫的博客已经有了。。 //插入。。。。感觉。。好污。。 cout<<"插后面"; s.push_back(1); //插后面 int i,j; for(i=0;i<s.size();++i) cout<<s[i]<<" "; cout<<"\n"; cout<<"插后面"; s.push_back(2); //插后面 for(i=0;i<s.size();++i) cout<<s[i]<<" "; cout<<"\n"; cout<<"插后面"; s.push_back(3); //插后面 for(i=0;i<s.size();++i) cout<<s[i]<<" "; cout<<"\n"; cout<<"插前面"; s.push_front(10); //插前面 for(i=0;i<s.size();++i) cout<<s[i]<<" "; cout<<"\n"; cout<<"插前面"; s.push_front(11); //插前面 for(i=0;i<s.size();++i) cout<<s[i]<<" "; cout<<"\n"; cout<<"插前面"; s.push_front(12); //插前面 。。感觉更污了。。 for(i=0;i<s.size();++i) cout<<s[i]<<" "; cout<<"\n"; //提取&&删除 cout<<"首元素"; cout<<s.front()<<endl; //读取首元素 cout<<"尾元素"; cout<<s.back()<<endl; //读取尾元素 cout<<"删除尾元素"<<endl; s.pop_back(); //删除末元素 cout<<"首元素"; cout<<s.front()<<endl; //读取首元素 cout<<"尾元素"; cout<<s.back()<<endl; //读取尾元素 cout<<"删除首元素"<<endl; s.pop_front(); //删除首元素 cout<<"首元素"; cout<<s.front()<<endl; //读取首元素 cout<<"尾元素"; cout<<s.back()<<endl; //读取尾元素 cout<<"长度:"<<s.size()<<endl; cout<<"判断是否为空:"<<s.empty()<<endl; cout<<"清空deque "<<endl; s.clear(); //清空deque cout<<"长度:"<<s.size()<<endl; cout<<"判断是否为空:"<<s.empty()<<endl; //读出长度,判断是否为空 }运行结果就是:是不是很清晰。。。这些就是基本的用法了,复杂的目前也不怎么需要。。
各位观众老爷们点个赞呗。。。
