数据结构:连续的存储空间,有两个口,一个进数据,一个出数据,先进先出
迭代器:没有迭代器
一、queue容器基本概念
Queue是一种先进先出(First In First Out,FIFO)的数据结构,它有两个出口,queue容器允许从一端新增元素,从另一端移除元素。
![](https://img.haomeiwen.com/i4837500/642a749fcb876298.gif)
二、queue没有迭代器
Queue所有元素的进出都必须符合”先进先出”的条件,只有queue的顶端元素,才有机会被外界取用。Queue不提供遍历功能,也不提供迭代器。
三、queue常用API
3.1 queue构造函数
queue<T> queT;//queue采用模板类实现,queue对象的默认构造形式:
queue(const queue &que);//拷贝构造函数
3.2 queue存取、插入和删除操作
push(elem);//往队尾添加元素
pop();//从队头移除第一个元素
back();//返回最后一个元素
front();//返回第一个元素
3.3 queue赋值操作
queue&operator=(const queue &que);//重载等号操作符
3.4 queue大小操作
empty();//判断队列是否为空
size();//返回队列的大小
四、实例
queue 基础类型
void test01() {
queue<int> q;
for(int i=0; i<5; i++){
q.push(i+1);
}
cout << "Front : " << q.front() << endl;
cout << "Back: " << q.back() << endl;
while(!q.empty()){
cout << q.front() << " ";
q.pop();
}
cout << endl;
cout << "size = " << q.size() << endl;
}
queue 对象类型
class Maker
{
public:
Maker(string name,int age){
this->name = name;
this->age = age;
}
public:
string name;
int age;
};
void test02() {
queue<Maker *> q;
q.push(new Maker("AAA",18));
q.push(new Maker("BBB",19));
q.push(new Maker("CCC",20));
while(!q.empty())
{
Maker *m = q.front();
cout <<m->name << " " << m->age << endl;
q.pop();
delete m;
}
}
网友评论