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 }
原文地址:https://www.cnblogs.com/chris-cp/p/4510556.html