Linux C++ 029-STL之queue容器
本节关键字:Linux、C++、queue
相关库函数:push、pop、back、front
queue基本概念
概念:queue是一种先进先出(First In Fisrst Out,FIFO)的数据结构,它有两个端口
关键词:push(); pop(); front(); back(); 队尾,队头
特点:
(1)队列容器允许从一端新增元素,从另一端移除元素
(2)队列中只有队头和队尾才可以被外界使用,因此队列不允许有遍历行为
(3)队列中进数据的过程称为 入队(push)
(4)队列中出数据的过程称为 出队(pop)
queue常用接口
功能描述:队列容器常用的对外接口
构造函数:
#include <queue>
queue<T> que; //queue采用模板类实现,queue对象的默认构造函数
queue(const queue &que); //拷贝构造函数
赋值操作:
queue& operator=(const queue &que); //重载等号操作符
数据存取:
push(elem); //往队尾添加元素
pop(); //从队头移除第一个元素
back(); //返回最后一个元素
front(); //返回第一个元素
大小操作:
empty(); //判断队列是否为空
size(); //返回栈大小
示例:
#include <queue>class Person
{
public:Person(string name, int age){this->m_Name = name;this->m_Age = age;}string m_Name;int m_Age;
};
void test01()
{queue<Person> q;Person p1("唐僧", 100);Person p2("孙悟空", 1000);Person p3("猪八戒", 800);Person p4("沙僧", 700);//入队q.push(p1);q.push(p2);q.push(p3);q.push(p4);//判断 - 只要队列不为空, 查看队头 查看队尾,出队while( !q.empty() ){cout << "队头元素_姓名:" << q.front().m_Name << "队头元素_年龄:" << q.front().m_Age << endl;cout << "队尾元素_姓名:" << q.back().m_Name << "队尾元素_年龄:" <<q.back().m_Age << endl;pop();}q.size();
}