• 浅谈C++ STL queue 容器


    浅谈C++ STL queue 容器

    本篇随笔简单介绍一下(C++STL)(queue)容器的使用方法和常见的使用技巧。(queue)容器是(C++STL)的一种比较基本的容器。我们在学习这个容器的时候,不仅要学到这个容器具体的使用方法,更要从中体会(C++STL)的概念。

    queue容器的概念

    (queue)在英文中是队列的意思。队列是一种基本的数据结构。而(C++STL)中的队列就是把这种数据结构模板化了。我们可以在脑中想象买票时人们站的排队队列。我们发现,在一个队列中,只可以从队首离开,从队尾进来(没有插队,想啥呢)。即一个先进先出的数据结构。

    上图理解:

    queue容器的声明

    (queue)容器存放在模板库:#include<queue>里,使用前需要先开这个库。

    (queue)容器的声明遵循(C++STL)的一般声明原则:

    容器类型<变量类型> 名称

    例:

    
    #include<queue>
    
    queue<int> q;
    
    queue<char> q;
    
    queue<pair<int,int> > q;
    
    queue<node> q;
    
    struct node{...};
    
    

    queue容器的使用方法

    (queue)容器的使用方法大致如下表所示:

    用法 作用
    q.front(),q.back() 返回queue的首、尾元素
    q.push() 从queue末尾加入一个元素
    q.size() 返回queue当前的长度(大小)
    q.pop() 从queue末尾删除一个元素
    q.empty() 返回queue是否为空,1为空、0不为空

    注意,虽然(vector)(queue)是两种最基本的(STL)容器,但请记住它们两个不是完全一样的。就从使用方法来讲:

    (queue)不支持随机访问,即不能像数组一样地任意取值。并且,(queue)并不支持全部的(vector)的内置函数。比如(queue)不可以用(clear())函数清空,清空(queue)必须一个一个弹出。同样,(queue)也并不支持遍历,无论是数组型遍历还是迭代器型遍历统统不支持,所以没有(begin(),end();)函数,使用的时候一定要清楚异同!

  • 相关阅读:
    [UOJ#128][BZOJ4196][Noi2015]软件包管理器
    [UOJ#127][BZOJ4195][NOI2015]程序自动分析
    [BZOJ3653]谈笑风生
    Django 数据库查询优化
    C#中引用(ref关键字)参数
    C#中值参数的使用实例
    静态变量和实例变量
    全局变量和局部变量的理解
    C#方法定义和调用-2
    C#函数的方法定义和方法调用小议
  • 原文地址:https://www.cnblogs.com/fusiwei/p/11822867.html
Copyright © 2020-2023  润新知