美文网首页
黑马C++视频笔记《STL之queue》

黑马C++视频笔记《STL之queue》

作者: 井底蛙蛙呱呱呱 | 来源:发表于2021-01-22 22:09 被阅读0次
    队列
    /* queue容器
     * queue是一种先进先出(First In First Out,FIFO)的数据结构,他有两个出口.
     *
     * 队列从一端进入数据,另一端出数据。
     * 队列中只有队首和队尾才可以被外界使用,因此队列不允许有遍历行为.
     *
     * 构造函数(采用模板类实现):
     *  - `queue<T> que;`,默认构造形式;
     *  - `queue(const queue &que);`,拷贝构造函数;
     *
     * 赋值操作:
     *  - `queue& operator=(const queue &que);`,重载等号操作符;
     *
     * 数据存取:
     *  - `push(elem);`,从队列尾部往队列添加数据;
     *  - `pop();`,从队列头部移除数据;
     *  - `back();`,返回最后一个元素;
     *  - `front();`,返回第一个元素。
     *
     * 大小操作:
     *  - `empty();`,判断堆栈是否为空;
     *  - `size();`,返回栈的大小。
     */
    

    一个栗子:

    class Person{
    public:
        Person(string name, int age){
            this->m_name = name;
            this->m_age = age;
        }
    
        string m_name;
        int m_age;
    };
    
    
    void test001(){
        //创建队列
        queue<Person> q;
    
        //准备数据
        Person p1("猴哥", 1000);
        Person p2("八戒", 400);
        Person p3("沙师弟", 200);
        Person p4("师傅", 30);
    
        // 入队
        q.push(p1);
        q.push(p2);
        q.push(p3);
        q.push(p4);
        // 队列无法遍历,所以这里没有用for循环
        while (!q.empty()){
            cout << "队头元素:" << q.front().m_name<< q.front().m_age
                << " 队尾元素:"<<q.back().m_name<<q.back().m_age << endl;
            q.pop();
        }
    
    }
    
    int main(){
        test001();
    }
    

    相关文章

      网友评论

          本文标题:黑马C++视频笔记《STL之queue》

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