C++提高编程 3 STL常用容器 -queue容器
3.6 queue容器
3.6.1 queue基本概念
概念:queue是一种先进先出(First In First Out,FIFO)的数据结构,它有两个出口(滑滑梯~先进去的小朋友先出来)
队列容器允许从一端新增元素,从另一端移除元素
队列中只有队头和队尾才可以被外界使用,因此队列中不允许有遍历行为
队列中进数据称为 --- 入队 push
队列中出数据称为 --- 出队 pop
判断队列是否为空 empty
返回队列大小 size
3.6.2 queue常用接口
功能描述:栈容器常用的对外接口
构造函数:
queue
queue(const queue &que); //拷贝构造函数
赋值操作:
queue& operator=(const queue &que); //重载等号操作符
数据存取:
push(elem); //往队尾添加元素
pop(); //从队头移除第一个元素
back(); //返回最后一个元素
front(); //返回第一个元素
大小操作:
empty(); //判断堆栈是否为空
size(); //返回栈大小
#includeusing namespace std; #include #include<string> //队列queue 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 q; //不光可以传int进入 也可以传入自定义数据类型 比如Person //创建队列 queueq; //准备数据 Person p1("张三", 20); Person p2("李四", 40); Person p3("王五", 60); Person p4("赵六", 80); //入队 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() { test1(); system("pause"); return 0; }