美文网首页
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