目录
[1, 什么是queue](#1, 什么是queue)
[2, 创建queue](#2, 创建queue)
[2-1, 标准数据类型](#2-1, 标准数据类型)
[2-2, 自定义数据类型](#2-2, 自定义数据类型)
[2-3, 其他创建方式](#2-3, 其他创建方式)
[3, 操作stack](#3, 操作stack)
[3-1, 赋值](#3-1, 赋值)
[3-2, 插入元素(push)](#3-2, 插入元素(push))
[3-3, 查询元素](#3-3, 查询元素)
[3-4, 删除元素](#3-4, 删除元素)
[3-5, 判断是否为空](#3-5, 判断是否为空)
[3-6, 交换](#3-6, 交换)
[3-7, 获取长度](#3-7, 获取长度)
1, 什么是queue
C++中的容器数据类型, 叫着队列容器 , 元素是先进先出, 不支持遍历
2, 创建queue
通过queue <数据类型> 对象名 , 可创建queue, 数据类型可以是标准数据类型 , 也可以是自定义类型
2-1, 标准数据类型
cpp
//queue中元素数据类型为string
queue<string> q1;
2-2, 自定义数据类型
cpp
//queue中元素的数据类型为Myclass
queue<Myclass> q1;
2-3, 其他创建方式
cpp
queue<Myclass> q1;
//通过拷贝构造方式, 将一个已存在的q1, 拷贝给q2
queue<Myclass> q2(q1);
3, 操作stack
3-1, 赋值
由于queue是一个容器, 只支持将一个 queue赋值给另外一个queue
cpp
queue<Myclass> q2 = q1;
3-2, 插入元素(push)
通过对象名.push(元素), 向queue中插入元素
cpp
Myclass m1("aaa", 1);
Myclass m2("bbb", 2);
Myclass m3("ccc", 3);
queue<Myclass> q1;
q1.push(m1);
q1.push(m2);
q1.push(m3);
3-3, 查询元素
通过对象名.front(), 获取头部元素, 通过**对象名.back(),**获取尾部元素
cpp
Myclass m1("aaa", 1);
Myclass m2("bbb", 2);
Myclass m3("ccc", 3);
queue<Myclass> q1;
queue<Myclass> q2;
q1.push(m1);
q1.push(m2);
q1.push(m3);
cout << q1.front().m_name << endl;
cout << q1.back().m_name << endl;
3-4, 删除元素
通过对象名.pop(), 删除头部元素
cpp
q1.pop();
3-5, 判断是否为空
可通过**对象名.empty(),**判断队列是否为空, 为空返回0, 不为空返回1
cpp
cout << q1.empty() << endl;
3-6, 交换
可通过对象名1.swap(对象名2), 交换两个栈的元素
cpp
q1.swap(q2);
3-7, 获取长度
可通过q1.size(), 删除栈顶元素
cpp
cout << q1.size() << endl;