双向结束队列的操作
来源:互联网 发布:64位版本的windows 编辑:程序博客网 时间:2024/05/16 08:16
/*支持随机操作,同时双向插入和删除,
如果插入和删除,并且要求随机存取,最好用deque
要求存取的用vector
要求插入和删除的用list*/
/*deque:double_end_queue*/
#include<stdio.h>
#include<deque>
#include<algorithm>
using namespace std;
int main()
{
int a[4]={0,1,2,3};
deque<int>Deque(4,4);
deque<int>D1(Deque);//复制 deque<int>c1(c2);
D1.assign(a,a+4);//复制 c1.assign(begin,end);
D1.assign(4,3);//复制 c1.assign(n,ele);n个ele;
deque<int>D2(a,a+4);//复制 deque<int>c(begin,end);
deque<int>D3(4,2);//复制 deque<int>c(n,ele);
deque<int>::iterator pos;
int i;
for(i=1;i<=4;i++)
printf("%d\n",D3[i-1]);// 进行随机存取操作 c[];
for(pos=D2.begin();pos!=D2.end();pos++)
printf("%d\n",*pos);// 进行迭代操作
printf("****\n");
//声明 deque<int>::iterator pos,pos=c.begin pos=c.end();
D2.push_front(11);//头部进入插入操作
D2.push_back(100);//尾部进入插入操作
for(pos=D2.begin();pos!=D2.end();pos++)
printf("%d\n",*pos);
D2.pop_front();//头部进行删除操作
D2.pop_back();//尾部进行删除操作
for(pos=D2.begin();pos!=D2.end();pos++)
printf("%d\n",*pos);
printf("%d %d\n",D2.front(),D2.back());
//头元素与 尾元素 c.front(),c.back()
//此外还有c.size(),c.empty(),c.clear();
printf("%d\n",D3.at(2));
//c.at()与c[]功能相同
pos=D2.erase(D2.begin());
//删除函数c.erase(pos),删除POS指针,返回下一地址
//同样还有 c.erase(behin,end);删除[begin,end)指针
//返回下一地址
printf("%d\n",*pos);
pos=D2.insert(pos,59);
printf("%d\n",*pos);
//插入函数 c.insert(pos, ele)返回新数据地址
//此外 还有 c.insert(pos,n,ele),c.insert(pos,begin,end);无返回值
pos=find(D2.begin(),D2.end(),59);
if(pos==D2.end())
printf("sssss\n");
else
printf("%d\n",*pos);
//此外还有交换函数c1.swap(c2) swap(c1,c2);
return 0;
}
如果插入和删除,并且要求随机存取,最好用deque
要求存取的用vector
要求插入和删除的用list*/
/*deque:double_end_queue*/
#include<stdio.h>
#include<deque>
#include<algorithm>
using namespace std;
int main()
{
int a[4]={0,1,2,3};
deque<int>Deque(4,4);
deque<int>D1(Deque);//复制 deque<int>c1(c2);
D1.assign(a,a+4);//复制 c1.assign(begin,end);
D1.assign(4,3);//复制 c1.assign(n,ele);n个ele;
deque<int>D2(a,a+4);//复制 deque<int>c(begin,end);
deque<int>D3(4,2);//复制 deque<int>c(n,ele);
deque<int>::iterator pos;
int i;
for(i=1;i<=4;i++)
printf("%d\n",D3[i-1]);// 进行随机存取操作 c[];
for(pos=D2.begin();pos!=D2.end();pos++)
printf("%d\n",*pos);// 进行迭代操作
printf("****\n");
//声明 deque<int>::iterator pos,pos=c.begin pos=c.end();
D2.push_front(11);//头部进入插入操作
D2.push_back(100);//尾部进入插入操作
for(pos=D2.begin();pos!=D2.end();pos++)
printf("%d\n",*pos);
D2.pop_front();//头部进行删除操作
D2.pop_back();//尾部进行删除操作
for(pos=D2.begin();pos!=D2.end();pos++)
printf("%d\n",*pos);
printf("%d %d\n",D2.front(),D2.back());
//头元素与 尾元素 c.front(),c.back()
//此外还有c.size(),c.empty(),c.clear();
printf("%d\n",D3.at(2));
//c.at()与c[]功能相同
pos=D2.erase(D2.begin());
//删除函数c.erase(pos),删除POS指针,返回下一地址
//同样还有 c.erase(behin,end);删除[begin,end)指针
//返回下一地址
printf("%d\n",*pos);
pos=D2.insert(pos,59);
printf("%d\n",*pos);
//插入函数 c.insert(pos, ele)返回新数据地址
//此外 还有 c.insert(pos,n,ele),c.insert(pos,begin,end);无返回值
pos=find(D2.begin(),D2.end(),59);
if(pos==D2.end())
printf("sssss\n");
else
printf("%d\n",*pos);
//此外还有交换函数c1.swap(c2) swap(c1,c2);
return 0;
}
0 0
- 双向结束队列的操作
- 双向队列的应用
- 双向队列的使用
- PHP的双向队列
- 【nginx】双向队列(ngx_queue.h)的分割队列(链表) ngx_queue_split操作
- 【nginx】双向队列(ngx_queue.h)的合并队列(链表) ngx_queue_add操作
- php简单的双向队列
- 实现Lua的双向队列
- Lua 双向队列的实现
- 双向队列
- 双向队列
- 双向队列
- 双向队列
- 双向队列
- 双向队列
- 双向队列
- 双向队列
- 双向队列
- ViewHolder模式
- 设置Dialog全屏显示(转)
- Boost智能指针
- 终于找到全annotation配置springMVC的方法了(事务不失效)
- svn status
- 双向结束队列的操作
- PreparedStatement 使用like
- 成员变量是属于声明的对象还是实际对象
- 求和号
- POJ 2406
- Linux下动态共享库加载时的搜索路径详解
- Red and Black
- Android编程之SparseArray<E>详解
- 推荐几个机器学习算法及应用领域相关的中国大牛