C++STL 系列(五):queue容器详解与示例
·
文章目录
仓库链接
本仓库提供STL相关每一篇文章的完整可运行示例代码。
git clone https://github.com/MaikieMaiky/cpp_STL.git
queue 基本概念
queue(队列)是一种先进先出(FIFO First In First Out)的数据结构,它的两端一端负责输入,另一端负责输出
push pop
----------------------------->
tail ele ele ele ele ele head
----------------------------->
back() front()
队列只有队头和队尾可以被外界使用,所以不允许遍历
push - 入队
pop - 出队
queue 常用接口
queue接口较少,符合先进先出的数据结构
构造函数:
queue<T> que;// 默认构造函数ueue(const queue &que);// 拷贝构造函数
赋值操作:
queue& operator=(const queue &que);// 重载等号操作符
数据存取:
push(elem);// 入队pop();// 出队front();// 返回队首元素back();// 返回队尾元素
大小操作:
-
empty();// 判断队列是否为空 -
size();// 返回队列的大小 -
示例
// queue的常用接口 /** * 构造 * queue<T> que; // 默认构造函数 * queue(const queue &que); // 拷贝构造函数 * 赋值 * queue& operator=(const queue &que); // 重载等号操作符 * 数据存取 * push(elem); // 入队 * pop(); // 出队 * front(); // 返回队首元素 * back(); // 返回队尾元素 * 大小操作 * empty(); // 判断队列是否为空 * size(); // 返回队列的大小 */ #include <iostream> #include <queue> using namespace std; class person { public: person(string name, int age) : m_name(name), m_age(age) {} string m_name; int m_age; }; void test0() { // 1. 构造 queue<person> que; // 2. 入队 que.push(person("master", 23)); que.push(person("monkey bro", 1000)); que.push(person("pig bro", 2000)); que.push(person("sha bro", 4000)); // 3. 查看队列的大小 cout << "the size of the queue is: " << que.size() << endl; // 4. 取出数据 // 4.1 判断队列是否为空 一次显示队首和队尾并弹出 while (!que.empty()) { // 4.1 查看队首元素 cout << "the front element is: " << que.front().m_name << " " << que.front().m_age << endl; // 4.2 查看队尾元素 cout << "the back element is: " << que.back().m_name << " " << que.back().m_age << endl; // 4.3 弹出队首元素 que.pop(); } // 5. 查看队列大小 cout << "the size of the queue is: " << que.size() << endl; } int main() { test0(); return 0; }
更多推荐
所有评论(0)