目录
一、基本概念
queue是是一种先进先出(First In First Out,FIFO)的数据结构,它有两个出口
- 队列容器允许从一端新增元素,从另一端移除元素
- 队列中只有队头和队尾才可以被外界使用,因此队列不允许有遍历行为
- 队列可以判断容器是否为空--empty()
- 队列可以返回容器中元素个数--size()
ps:喝多了吐,是栈; 吃多了拉, 是队列
二、常用接口
构造函数
queue<T> que; //queue采用模板类实现,queue对象的默认构造形式
queue(const queue &que); //拷贝构造函数
赋值操作
queue& operator=(const queue &que); //重载等号操作符
数据存取
push(elem); //向队尾添加元素
pop(); //从队头移除第一个元素
back(); //返回最后一个元素
front(); //返回第一个元素
大小操作
empty(); //判断队列是否为空
size(); //返回队列的大小
测试
#include<queue>
#include<string>
//队列queue常用接口
class Person {
public:
string m_Name;
int m_Age;
Person(string name, int age) {
this->m_Name = name;
this->m_Age = age;
}
};
void Test01() {
queue<Person> q;
Person q1("刘晨", 19);
Person q2("王敏", 20);
Person q3("张立", 19);
Person q4("李四", 20);
q.push(q1);
q.push(q2);
q.push(q3);
q.push(q4);
cout << "队列大小为:" << q.size() << endl;//4
//判断只要队列不为空,就查看队头和队尾,并出队
while (!q.empty()) {
cout <<"队头元素--姓名:" << q.front().m_Name << "年龄:" << q.front().m_Age << endl;
cout << "队尾元素--姓名:" << q.back().m_Name << "年龄:" << q.back().m_Age << endl;
//出队
q.pop();
}
cout << "队列大小为:" << q.size() << endl;//0
}
int main() {
Test01();
return 0;
}
有问题欢迎指正!