queue容器

228 阅读1分钟

queue容器

概念:Queue是一种先进先出(First In First Out,FiFO)的数据结构,它有两个出口

  1. 队列容器允许从一端新增元素,从另一端移除元素。
  2. 队列中只有队头和队尾可以被外界使用,因此队列不允许有遍历行为。
  3. 队列中金数据称为---入队 push
  4. 队列中出数据称为---出队 pop

queue常用接口

函数原型:

构造函数:

  1. queue que; //queue采用模板类实现,queue对象的默认构造函数
  2. queue(const queue &que); //拷贝构造函数

赋值操作:

  1. queue& operator=(const queue &que); //重载等号操作符

数据存储:

  1. push(elem); //往队尾添加元素
  2. pop(); //从头移除第一个元素
  3. back(); //返回最后一个元素
  4. front(); //返回第一个元素

大小操作:

  1. empty(); //判断堆栈中是否为空
  2. size(); //返回栈的大小

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("唐僧", 30);
Person p2("孙悟空", 2000);
Person p3("猪八戒", 1000);
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;
}

}