概念:Queue是一种先进先出(First In First Out,FIFO)的数据结构,它有两个出口。
构造函数:
queue<T> que; //queue采用模板类实现,queue对象的默认构造形式
queue(const queue &que); //拷贝构造函数
赋值操作
queue & operator=(const queue &que); //重载等号操作符
数据存取
push(elem); //往队尾添加元素
pop(); //从队头移除第一个元素
back(); //返回最后一个元素
front(); //返回第一个元素
大小操作
empty(); //判断队列是否为空
size(); //返回队列的大小
#include <iostream> #include <string> #include <queue> using namespace std; /* queue<T> que; //queue采用模板类实现,queue对象的默认构造形式 queue(const queue &que); //拷贝构造函数 queue & operator=(const queue &que); //重载等号操作符 push(elem); //往队尾添加元素 pop(); //从队头移除第一个元素 back(); //返回最后一个元素 front(); //返回第一个元素 empty(); //判断队列是否为空 size(); //返回队列的大小 */ //queue容器 class Person { public: Person(string name,int age) { this->m_Name = name; this->age = age; } string m_Name; int age; }; void test01() { //创建queue容器 queue<Person> q; //准备数据 Person p1("唐僧",30); Person p2("孙悟空",3000); Person p3("猪八戒",900); Person p4("沙僧",800); //入队 q.push(p1); q.push(p2); q.push(p3); q.push(p4); cout << "队列大小为:" << q.size() << endl; //判断只要queue不为空,查看对头,查看队尾,出队 while (!q.empty()) { //查看队头 cout << "对头元素 --> 姓名:" << q.front().m_Name << "\t年龄:" << q.front().age << endl; //查看队尾 cout << "对尾元素 --> 姓名:" << q.back().m_Name << "\t年龄:" << q.back().age << endl; //出队 q.pop(); } cout << "队列大小为:" << q.size() << endl; } int main() { test01(); system("pause"); return 0; }