C++学习 --- STL常用容器之queue容器

5、queue 容器

5.1、queue基本概念

概念:Queue是一种先进先出(First In First Out,FIFO)的数据结构,它有两个出口。

C++学习 --- STL常用容器之queue容器

 

5.2、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 <string>
#include <queue>
using namespace std;

/*
queue<T> que;             //queue采用模板类实现,queue对象的默认构造形式
queue(const queue &que);  //拷贝构造函数
queue & operator=(const queue &que);   //重载等号操作符

push(elem);     //往队尾添加元素
pop();          //从队头移除第一个元素
back();         //返回最后一个元素
front();        //返回第一个元素
empty();        //判断队列是否为空
size();         //返回队列的大小
*/

//queue容器

class Person {
public:
    Person(string name,int age) {
        this->m_Name = name;
        this->age = age;
    }
    string m_Name;
    int age;

};
void test01() {
    //创建queue容器
    queue<Person> q;
    
    //准备数据
    Person p1("唐僧",30);
    Person p2("孙悟空",3000);
    Person p3("猪八戒",900);
    Person p4("沙僧",800);

    //入队
    q.push(p1);
    q.push(p2);
    q.push(p3);
    q.push(p4);

    cout << "队列大小为:" << q.size() << endl;
    //判断只要queue不为空,查看对头,查看队尾,出队
    while (!q.empty()) {
        //查看队头
        cout << "对头元素 --> 姓名:" << q.front().m_Name << "\t年龄:" << q.front().age << endl;
        //查看队尾
        cout << "对尾元素 --> 姓名:" << q.back().m_Name << "\t年龄:" << q.back().age << endl;
        //出队
        q.pop();
    }

    cout << "队列大小为:" << q.size() << endl;
}


int main() {
    test01();

    system("pause");
    return 0;
}

C++学习 --- STL常用容器之queue容器

 

 

 

上一篇:546-C++线程间的同步通信(生产者-消费者模型)


下一篇:[干货教程]仿网易云课堂微信小程序开发实战经验