【STL】queue队列容器
文章目录
- queue队列容器
- 概述
- API
- 练习
queue队列容器
概述
Queue是一种先进先出(First In First Out,FIFO)的数据结构,它有两个出口,queue容器允许从一端新增元素,从另一端移除元素。
queue没有迭代器
Queue所有元素的进出都必须符合”先进先出”的条件,只有queue的顶端元素,才有机会被外界取用。Queue不提供遍历功能,也不提供迭代器。
API
-
入队 push
-
出队 pop
-
返回队头 front
-
返回队尾 back
-
判断是否为空 empty
-
返回队列大小 size
练习
/*queue构造函数queue<T> queT;//queue采用模板类实现,queue对象的默认构造形式:queue(const queue &que);//拷贝构造函数queue存取、插入和删除操作push(elem);//往队尾添加元素pop();//从队头移除第一个元素back();//返回最后一个元素front();//返回第一个元素queue赋值操作queue& operator=(const queue &que);//重载等号操作符queue大小操作empty();//判断队列是否为空size();//返回队列的大小*/class Person
{
public:Person(string name, int age) :m_name(name), m_age(age){}string m_name;int m_age;};
void test01()
{queue<Person>q;Person p1("aaa", 10);Person p2("bbb", 20);Person p3("ccc", 30);q.push(p1);q.push(p2);q.push(p3);cout << q.size() << endl;//查看队头元素,并执行出队操作while (!q.empty()){cout << q.front().m_name<< endl;q.pop();}cout << q.size() << endl;
}