美文网首页
C++ queue (33)

C++ queue (33)

作者: maskerII | 来源:发表于2022-07-09 22:29 被阅读0次

数据结构:连续的存储空间,有两个口,一个进数据,一个出数据,先进先出
迭代器:没有迭代器

一、queue容器基本概念

Queue是一种先进先出(First In First Out,FIFO)的数据结构,它有两个出口,queue容器允许从一端新增元素,从另一端移除元素。

image.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;
    }

}

相关文章

网友评论

      本文标题:C++ queue (33)

      本文链接:https://www.haomeiwen.com/subject/imjgbrtx.html