C++提高编程 3 STL常用容器 -queue容器

3.6  queue容器

3.6.1  queue基本概念

概念:queue是一种先进先出(First In First Out,FIFO)的数据结构,它有两个出口(滑滑梯~先进去的小朋友先出来)

 

 队列容器允许从一端新增元素,从另一端移除元素

队列中只有队头和队尾才可以被外界使用,因此队列中不允许有遍历行为

队列中进数据称为 --- 入队 push

队列中出数据称为 --- 出队 pop

 

判断队列是否为空  empty

返回队列大小  size

 

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

//队列queue

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

void test1()
{
    //queue<int>q;        //不光可以传int进入 也可以传入自定义数据类型 比如Person
    //创建队列
    queue<Person>q;

    //准备数据
    Person p1("张三", 20);
    Person p2("李四", 40);
    Person p3("王五", 60);
    Person p4("赵六", 80);

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

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

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

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

int main()
{
    test1();

    system("pause");
    return 0;
}
复制代码

 

posted @   大白不会敲代码  阅读(40)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
点击右上角即可分享
微信分享提示