queue容器
- 概念:
queue是一种先进先出的数据结构,它有两个出口
队列容器允许从一端新增元素,从另一端移除元素
队列中只有队头和队尾才可以被外界使用,因此队列不允许有遍历行为
队列中进数据称为-----入队 push
queue常用接口
- 功能描述:
栈容器常用的对外接口 - 构造函数:
queue< T> que;//queue采用模板类实现,queue对象的默认构造形式
queue(const stack &que);//拷贝构造函数
- 赋值操作:
queue& operator=(const queue &que);//重载等号操作符
- 数据存取
push(elem);//往队尾添加元素
pop();//从队头移除第一个元素
back();//返回最后一个元素
front();//返回第一个元素
- 大小操作:
empty();//判断堆栈是否为空
size();//返回栈的大小
#include <iostream>
#include <queue>
#include <string>
using namespace std;
class Person {
public:
Person(string name, int age) {
this->m_name = name;
this->m_age = age;
}
string m_name;
int m_age;
};
void test1()
{
queue<Person> q;//创建队列
Person p1("唐僧",30);//准备数据
Person p2("孙悟空",1000);
Person p3("猪八戒",900);
Person p4("沙僧",800);
q.push(p1);//入队操作
q.push(p2);
q.push(p3);
q.push(p4);
cout << "队列的大小为: " << q.size() << endl;
//判断只要队列不为空,查看队头,查看队尾,出队
//队列不提供迭代器,更不支持随机访问
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;
}
int main(void)
{
test1();
return 0;
}
总结:
入队-----push
出队-----pop
返回队头元素-----front
返回队尾元素-----back
判断队是否为空-----empty
返回队列的大小-----size