之前学习了队列,只会基本的操作,现在学习一下一些使用办法~
1 queue 基本概念**
概念:Queue是一种先进先出**(First In First Out,FIFO)的数据结构,它有两个出口
队列容器允许从一端新增元素,从另一端移除元素
队列中只有队头和队尾才可以被外界使用,因此队列不允许有遍历行为
队列中进数据称为 — 入队 push
队列中出数据称为 — 出队 pop
生活中的队列:
排队打饭,一日三餐。
2 queue 常用接口
功能描述:队列容器常用的对外接口
构造函数:
queue<T> que;
//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:
Person(string name, int age)
{
m_Name = name;
m_age = age;
}
string m_Name;
int m_age;
};
void test01() {
queue<Person>s;
Person p1("刘备",29);
Person p2("关羽", 24);
Person p3("张飞", 23);
Person p4("诸葛亮", 20);
s.push(p1);
s.push(p2);
s.push(p3);
s.push(p4);
while (!s.empty())
{
cout << "队头元素: 姓名" << s.front().m_Name << "年龄:" << s.front().m_age << endl;
cout << "队尾元素: 姓名" << s.back().m_Name << "年龄:" << s.back().m_age << endl;
cout << endl;
//弹出队头元素
s.pop();
cout << "队列大小:" << s.size()<<endl;
}
}
int main() {
test01();
cout << "----------------" << endl;
system("pause");
return 0;
}
总结:
- 入队 — push
- 出队 — pop
- 返回队头元素 — front
- 返回队尾元素 — back
- 判断队是否为空 — empty
- 返回队列大小 — size
PS:
麦香E站,分享我在大学期间的学习资源,学习记录,将涵盖数学分享,比赛经历,科研之路,信通学习,编程进阶,外语学习,生活理财等多方面知识。
欢迎关注微信公众号:麦香E站,即时分享EE大学生修行之道~