STL学习笔记12— —特殊容器queue

来源:互联网 发布:斗鱼协议号软件 编辑:程序博客网 时间:2024/06/06 20:47

简介

在头文件<queue> 中定义

namespace std {    template <typename T, typename Container = deque<T>> class queue;}
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

queue就是数据结构里队列的实现,先进先出。定义中的第二个参数用来定义queue内部存放元素的实际容器,可以是任何序列式容器,默认容器为deque。

这里写图片描述

实际上queue也只是很单纯地把各项操作转化为内部容器的对应调用。

这里写图片描述

核心接口

push() //将一个元素置入queue内front() //返回queue内头部元素back() //返回queue内尾部元素pop() //从queue中移除元素
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

需要注意的是,pop()移除下一个元素,但并不将它返回,而front()和back()返回元素的值,但不删除它。

栗子

#include <iostream>#include <queue>#include <string>using namespace std;int main(){    queue<string> q;    //向队列里插入三个值    q.push("These ");    q.push("are ");    q.push("more than ");    //元素出队并显示    cout << q.front();    q.pop();    cout << q.front();    q.pop();    //插入两个新值    q.push("four ");    q.push("words!");    //元素出队    q.pop();    //元素出队并显示    cout << q.front();    q.pop();    cout << q.front() << endl;    q.pop();    //输出队列的元素个数    cout << "number of elements in the queue: " << q.size() << endl;    return 0;}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39

输出

These are four words!number of elements in the queue: 0
  • 1
  • 2
  • 1
  • 2
原创粉丝点击