queue是单端队列,但是在其实现上是使用的双端队列,所以在queue的实现上多用的是deque的方法。(只要用双端队列的一端只出数据,另一端只进数据即可从功能上实现单端队列)如下图

例程

#include<stdexcept>
#include<string>
#include<cstdlib>
#include<cstdio>
#include<algorithm>
#include<iostream>
#include<ctime>
#include<queue>
using namespace std;
long get_a_target_long()
{
long target = 0;
cout<<"target(0~"<<RAND_MAX<<"):";
cin>>target;
return target;
}
string get_a_target_string()
{
long target = 0;
char buf[10];
cout<<"target(0~"<<RAND_MAX<<"):";
cin>>target;
snprintf(buf, 10, "%ld", target);
return string(buf);
}
int compareLongs(const void* a, const void* b)
{
return (*(long*)a - *(long*)b);
} int compareStrings(const void *a, const void *b)
{
if(*(string*)a > *(string*)b)
return 1;
else if(*(string*)a < *(string*)b)
return -1;
else
return 0;
}
void test_queue(long& value)
{
cout << "\ntest_queue().......... \n"; queue<string> c;
char buf[10]; clock_t timeStart = clock();
for(long i=0; i< value; ++i)
{
try {
snprintf(buf, 10, "%d", rand());
c.push(string(buf));
}
catch(exception& p) {
cout << "i=" << i << " " << p.what() << endl;
abort();
}
}
cout << "milli-seconds : " << (clock()-timeStart) << endl;
cout << "queue.size()= " << c.size() << endl;//队列大小
cout << "queue.front()= " << c.front() << endl; //头部元素
cout << "queue.back()= " << c.back() << endl; //尾部元素
c.pop();                          //删除front元素
cout << "queue.size()= " << c.size() << endl;
cout << "queue.front()= " << c.front() << endl;
cout << "queue.back()= " << c.back() << endl;
}
int main()
{
long int value;
cout<<"how many elements: "; cin>>value;
test_queue(value);
return 0;
}

运行结果

最新文章

  1. bzoj1001最小割
  2. NOIP2016报零记
  3. Scala函数式编程进阶
  4. [WP8.1UI控件编程]Windows Phone大数据量网络图片列表的异步加载和内存优化
  5. 一些常用的方法(1)--去除DataTable中的重复数据
  6. css3弹性盒子模型
  7. 详细解读Jquery各Ajax函数:$.get(),$.post(),$.ajax(),$.getJSON()
  8. ICA
  9. Linux Shell脚本入门--(linux空设备文件和重定向)&gt;/dev/null 2&gt;&amp;1
  10. SQL Server 存储过程自启动
  11. JS数字金额转换为货币汉字形式
  12. 创建一个可用的简单的SpringMVC项目,图文并茂
  13. dedecms织梦自定义表单发送到邮箱-用163邮箱发送邮件
  14. @ property 与@ synthesize 的作用 VS @interface
  15. .net 导入excel数据
  16. maya_关于脚本编辑器导入python模块
  17. nyoj38
  18. CentOS 文件搜索find
  19. Vue 中的生命周期和钩子函数
  20. EF 配置实现建表与迁移

热门文章

  1. Swift-技巧(一)缩放并填充图片
  2. Java中Lambda表达式的进化之路
  3. Notepad++ 过滤注释行和空行
  4. 『学了就忘』Linux基础命令 — 24、文件基本权限的相关命令
  5. Linux wget 命令 使用总结
  6. Vue中computed计算属性
  7. vm扩展磁盘容量后不能启动
  8. c#.net 实现短网址的简单方法
  9. .NET Protobuf包装器库
  10. 菜鸡的Java笔记 开发支持类库