STL之Queue(Q)

STL的Queue(数据结构中的队列):

  特点:FIFO 先进先出;

     自适应容器(即容器适配器)

   栈适配器STL queue

   STL中实现的Queue:

    用list来实现queue; queue<int, list<int> >      q;

    用deque来实现queue; queue<int, deque<int> >   q;

    不能用vector来实现queue;

  STL中Queue实现的方法(6种):

    q.empty();

    q.size();

    q.front();

    q.back();

    q.pop();

    q.push(item);

  STL的queue没有迭代器,它只能操作队列头、队列尾的元素,而不能操作队列中间的元素;一般情况下,queue用于系统软件开发,编译器开发;

 1 #include <list>
 2 #include <deque>
 3
 4 using namespace std;
 5
 6 int main()
 7 {
 8     queue<int, deque<int> > a;
 9     queue<int, list<int> >  b;
10     //queue<int, vector<int> > c; //error
11     queue<int> q;  //相当于queue<int, deque<int> > q;
12
13     q.push(10); //队列只能从队尾插入
14     q.push(5);
15     q.push(-1);
16     q.push(20);
17
18     std::cout<<"queue size is "<<q.size()<<std::endl;
19     std::cout << "queue first item:" << q.front() << std::endl; //q.front() 查看队列头元素
20     std::cout <<"queue end item: " <<q.back() <<std::endl;      //q.front() 查看队列尾元素
21
22     q.pop();    //队列只能从头删除
23     std::cout << "queue new first item:" << q.front() << std::endl;
24
25     while(q.size() !=0)
26     {
27         std::cout << "del item :" <<q.front() << std::endl;
28         q.pop();
29     }
30
31     if(q.empty())
32     {
33         std::cout <<"now queue is empty "<<std::endl;
34     }
35
36     return 0;
37 }
时间: 2024-10-12 04:38:56

STL之Queue(Q)的相关文章

STL学习 - queue了解

Queue是STL中的队列表示. 特点是先进先出(First In First Output FIFO). 允许的操作是新增元素,移除元素,从最底端添加元素,从最顶端获取元素,除了从底端加入元素,从顶端取出外,没有任何其它方法可以存取queue的其他元素,也就是说queue不允许有遍历行为. 把元素推入queue的操作为push, 将元素推出queue的操作为pop. 由于queue系以底部容器完成其所有工作,而具有这种"修改某物接口,形成另外一种风貌"的性质的,称为adapter(容

c++ STL:队列queue、优先队列priority queue 的使用

说明:本文全文转载而来,原文链接:http://www.cppblog.com/wanghaiguang/archive/2012/06/05/177644.html C++ Queues(队列) C++队列是一种容器适配器,它给予程序员一种先进先出(FIFO)的数据结构.1.back() 返回一个引用,指向最后一个元素2.empty() 如果队列空则返回真3.front() 返回第一个元素4.pop() 删除第一个元素5.push() 在末尾加入一个元素6.size() 返回队列中元素的个数

C++ 标准模板库STL 队列 queue 使用方法与应用介绍

C++ 标准模板库STL 队列 queue 使用方法与应用介绍 queue queue模板类的定义在<queue>头文件中. 与stack模板类很相似,queue模板类也需要两个模板参数,一个是元素类型,一个容器类型,元素类型是必要的,容器类型是可选的,默认为deque类型. 定义queue对象的示例代码如下: queue<int> q1; queue<double> q2; queue的基本操作有: 入队,如例:q.push(x); 将x接到队列的末端. 出队,如例:

STL 之 queue、priority_queue 源码剖析

/* * Copyright (c) 1994 * Hewlett-Packard Company * * Permission to use, copy, modify, distribute and sell this software * and its documentation for any purpose is hereby granted without fee, * provided that the above copyright notice appear in all c

Gengxin讲STL系列——Queue和Stack

第三篇. 感觉队列和栈是必须的……所以决定加上这两个…… 我发现我已经买域名买上隐了……今天又买了个.top……真是智障…… Queue(队列FIFO)和Statk(栈FILO). 那么为什么要这两个一块讲呢?理由很简单,数据结构小班同志们都学了,基础原理都会了,这两个东西很像,无论是在操作上还是其他别的方面…… 而这篇博客主要是详解STL中queue和statk的用法. 首先,回顾一下队列和栈: (1)     非STL的队列实现方法: 用数组模拟一个队列,两个指针,分别指向队列的头和尾,入队

C++ STL学习——queue

我们在上一篇博客中<C++ STL学习--stack>简单介绍了STL 中stack这种数据结构的使用,这篇博客主要来讲一下queue队列的使用.其实queue的使用和stack一样简单.示例代码上传至 https://github.com/chenyufeng1991/STL_queue . (1)首先要引入头文件  #include <queue> . 并使用命名空间  using namespace std; (2)同stack一样,queue也不能使用迭代器.因为queue

问题解决——在STL的queue中使用自定义类

本文原创,转载请保证文章的完整性,并显要的注明出处. 本文链接:http://blog.csdn.net/wlsgzl/article/details/38843513 平时很少用STL,就算用,也基本是使用queue<int>之类的简单数据类型,偶尔在MFC里写点小代码,用的也是queue<CString>. (求不要吐槽我为什么用CString不用string,在MFC里使用CString真的很方便,我对内存利用率和处理速度又没有什么要求,能跑就行,请勿吐槽.) =======

STL之queue

描述 使用STL中的queue,完成入队.出队.获取队首.获取队尾等基本操作. 部分代码已经给出,请补充完整,提交时请勿包含已经给出的代码. int main() { queue<int> qu; int n; cin>>n; while(n--) { Op(qu); } while(!qu.empty()) { cout<<qu.front()<<endl; qu.pop(); } return 0; } 输入 输入数据第一行为整数n,接下来有n个命令,其

C++ STL 之 queue

queue 是一种先进先出(first in first out, FIFO)的数据类型,他有两个口,数据元素只能从一个口进,从另一个口出.队列只允许从队尾加入元素,队头删除元素,必须符合先进先出的原则,queue 和 stack 一样不具有遍历行为. 特性总结: ? 必须从一个口数据元素入队,另一个口数据元素出队. ? 不能随机存取,不支持遍历 1 #include <iostream> 2 #include <queue> 3 using namespace std; 4 5