C++ STL学习——queue

我们在上一篇博客中《C++ STL学习——stack》简单介绍了STL 中stack这种数据结构的使用,这篇博客主要来讲一下queue队列的使用。其实queue的使用和stack一样简单。示例代码上传至 https://github.com/chenyufeng1991/STL_queue 。

(1)首先要引入头文件  #include <queue> . 并使用命名空间  using namespace std;

(2)同stack一样,queue也不能使用迭代器。因为queue只能在队尾插入元素,在队头删除元素。不能对里面的元素进行遍历。

(3)创建queue

    queue<int> queue1;
    queue<int> queue2(queue1);

可以创建一个空的queue,也可以使用复制构造函数创建。

(4)push():在队尾插入元素

    queue1.push(2);
    queue1.push(4);
    queue1.push(6);

(5)front(): 访问队头元素; back(): 访问队尾元素

    cout << "队头元素为:" << queue1.front() << endl;
    cout << "队尾元素为:" << queue1.back() << endl;

(6)pop():删除队头元素

queue1.pop();

(7)empty() :判断队列是否为空

 cout << "队列是否为空:" << queue1.empty() << endl;

(8)size():计算队列中的元素个数

cout << "队列的长度为:" << queue1.size() << endl;

队列在很多遍历算法中经常会用到,一定要好好掌握。

时间: 2024-10-13 02:00:33

C++ STL学习——queue的相关文章

STL学习 - queue了解

Queue是STL中的队列表示. 特点是先进先出(First In First Output FIFO). 允许的操作是新增元素,移除元素,从最底端添加元素,从最顶端获取元素,除了从底端加入元素,从顶端取出外,没有任何其它方法可以存取queue的其他元素,也就是说queue不允许有遍历行为. 把元素推入queue的操作为push, 将元素推出queue的操作为pop. 由于queue系以底部容器完成其所有工作,而具有这种"修改某物接口,形成另外一种风貌"的性质的,称为adapter(容

C++ STL学习 queue

本文修改自http://www.cnblogs.com/hdk1993/p/5809180.html 1.使用queue需要声明头文件#include <queue> 2.queue 模板类需要两个模板参数,一个是元素类型,一个容器类型,元素类型是必要的,容器类型是可选的,默认为deque 类型. 3.queue 的基本操作有:入队,如例:que.push(x); 将x 接到队列的末端.出队,如例:que.pop(); 弹出队列的第一个元素,注意,并不会返回被弹出元素的值.访问队首元素,如例:

STL学习——Stack/Queue篇

STL学习--Stack/Queue篇 Stack 概述 stack是一种先进先出的数据结构,只有一个出口,stack允许新增元素,移除元素,取得最顶端元素.但除了最顶端外,没有任何办法可以存取stack其他元素.即不允许遍历行为. 实现 stack实现是以容器为底部结构的,将容器的接口改变,使其符合"先进先出"特性,便形成了一个栈.具体实现可以将底部deque的头端开口封闭,便实现了stack.因为stack具有"修改某物接口,形成另一种风貌"性质,故称为&quo

stl容器学习——queue,stack,list与string

目录 string stack queue list 点击上面的内容可以实现跳转哦 简介:本文记录了对string list queue stack四个容器的学习总结,包含有四种容器常用的函数介绍和一些使用过程中碰到的细节总结,在list容器中介绍了迭代器的使用. 头文件 想要用哪一种容器,就要加上对应的头文件 比如想要使用queue , 就要加上 #include<queue> 以此类推,想要使用STL库中的容器,只要加上它们的头文件就好. string 目录部分 1.string的定义及初

STL学习_配接器篇

STL学习_配接器篇 定义 配接器(Adapter)在STL组件的灵活组合运用功能上,扮演着轴承.转换器的角色.它事实上是一种设计模式.即将一个class的接口转换为另一个class的接口,使原本因接口不兼容而不能合作的classes,可以一起运作. 分类 STL所提供的各种适配器中,改变仿函数(functors)接口者,称为function adapter:改变容器(containers)接口者,称为container adapter:改变迭代器(iterators)接口者,称为iterato

STL学习——Priority_queue篇

STL学习--Priority_queue篇 概述 priority_queue是一个拥有权值观念的queue,它允许加入新元素,移除旧元素,审视元素值等功能.因为它是queue,故只允许底端加入元素,顶端取出元素.priorit_queue内元素并非依照被推入的次序排列,而是依照元素权值排列.权值最高者,排在最前面. 实现 priority_queue利用max_heap和vector表现的完全二叉树实现.它的实现完全以底部容器为根据,并使用heap处理规则,故实现简单.默认情况,使用vect

STL 之 queue、priority_queue 源码剖析

/* * Copyright (c) 1994 * Hewlett-Packard Company * * Permission to use, copy, modify, distribute and sell this software * and its documentation for any purpose is hereby granted without fee, * provided that the above copyright notice appear in all c

STL之Queue(Q)

STL的Queue(数据结构中的队列): 特点:FIFO 先进先出: 自适应容器(即容器适配器)   栈适配器STL queue  STL中实现的Queue: 用list来实现queue: queue<int, list<int> >  q; 用deque来实现queue: queue<int, deque<int> > q; 不能用vector来实现queue: STL中Queue实现的方法(6种): q.empty(); q.size(); q.fron

标准模板库(STL)学习探究之vector容器

标准模板库(STL)学习探究之vector容器  C++ Vectors vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据.为了可以使用vector,必须在你的头文件中包含下面的代码:#include <vector>构造函数. Vectors 包含着一系列连续存储的元素,其行为和数组类