这里有C++STL——全面总结详细教程(附案例解析)(持续更新中)
目录
queue 容器
queue 基本概念
概念:Queue是一种先进先出(First In First Out,FIFO)的数据结构,它有两个出口
队列容器允许从一端新增元素,从另一端移除元素
队列中只有队头和队尾才可以被外界使用,因此队列不允许有遍历行为
队列中进数据称为 --- 入队 push
队列中出数据称为 --- 出队 pop
生活中的队列:
queue 常用接口
功能描述:栈容器常用的对外接口
构造函数:
queue<T> que;
//queue采用模板类实现,queue对象的默认构造形式queue(const queue &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_Age = age;
this->m_Name = name;
}
string m_Name;
int m_Age;
};
void test01() {
queue<int >q;
for (int i = 0; i < 10; i++)
{
q.push(i);
}
cout << "队头元素:" << q.front() << endl;
cout << "队尾元素:" << q.back() << endl;
cout << "队列的大小为:" << q.size() << endl;
}
void test02() {
queue<Person>q;
Person p1("张三", 12);
Person p2("李四", 13);
q.push(p1);
q.push(p2);
if (!q.empty()) {
cout << "队头元素姓名与年龄为:" << q.front().m_Name << q.front().m_Age << endl;
cout << "队尾元素姓名与年龄为:" << q.back().m_Name << q.back().m_Age << endl;
}
cout << "队列的大小为:" << q.size() << endl;
}
int main() {
test01();
test02();
system("pause");
return 0;
}
总结:
- 入队 --- push
- 出队 --- pop
- 返回队头元素 --- front
- 返回队尾元素 --- back
- 判断队是否为空 --- empty
- 返回队列大小 --- size