queue容器

Queue是一种先进先出的数据结构,它有两个出口:如图
在这里插入图片描述
队列容器允许从一端新增元素,另一端移除元素
队列中只有队头和队尾才可以被外界使用,因此队列不允许有遍历行为
队列中进数据为入队-------------push
队列中出数据为出队------------pop

构造函数:
queueque; //queue采用模板类实现,queue对象的默认构造形式
queue(const queue &que); //拷贝构造函数

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

数据存取:
push(elem); //往队尾添加元素
pop(); //从队头移除第一个元素
back();//返回最后一个元素
front(); //返回第一个元素

大小操作
empty(); //判断堆栈是否为空
size(); //返回栈的大小

示例:

#include<iostream>
using namespace std;
#include<queue>
#include<string>

class Person{
 public:	
	string m_Name;
	int m_Age;
	
	Person(string name,int age){
		this->m_Age = age;
		this->m_Name = name;
	}
};

//队列常用接口 
void test01(){
	//创建一个队列 
	queue<Person>q;
	
	//准备数据
	Person p1("唐神",20); 
	Person p2("孙悟空",1000); 
	Person p3("猪八戒",900); 
	Person p4("沙僧",800); 
	
	//入队:
	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; 
		q.pop();   //队头出队 
	}
	cout<<"队列大小:"<<q.size()<<endl; 
	 
} 
int main(){
    test01();
	system("pause");
	return 0; 
} 

输出样式:
在这里插入图片描述

发布了31 篇原创文章 · 获赞 20 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/souhanben5159/article/details/103951375