当前位置:   article > 正文

STL常用容器——queue容器的使用_queue()容器怎么取数据

queue()容器怎么取数据

STL常用容器——queue容器的使用

1、queue容器的介绍

queue容器简介

queue是一种先进先出(FIFO)的数据结构,因此queue容器又称队列容器。

queue容器有 2 个开口,其中一个开口专门用来输入元素,另一个专门用来输出元素。

队列中只有队头和队尾才可以被外界使用,只能在队列容器的末尾添加新元素,只能从头部移除元素。

队列中进数据称为 — 入队 push。

队列中出数据称为 — 出队 pop。

queue容器特点

  • queue容器内的元素进出都必须符合 “先进先出” 的策略。

  • queue容器队列顶端(队头和队尾)的元素才会被取用,因此queue容器不提供遍历功能,也不提供迭代器。

  • 最先进入 queue 的元素,也可以最先从 queue 中出来

2、queue容器常用接口

2.1、queue容器构造函数

创建一个空的 queue 容器

语法:queue<T> q

//创建一个int类型的queue 容器,底层采用 deque 容器的 queue 容器适配器
queue<int> q1;
  • 1
  • 2

创建指定的queue 容器

指定queue 容器适配器底层采用的基础容器类型,可以选择 deque 和 list

语法:queue<T, list<T>> values

//创建了一个使用 list 容器作为基础容器的空queue容器
queue<int, list<int>> q2;
  • 1
  • 2

注意:基础容器存储的数据类型必须和 queue 容器存储的数据类型保持一致

用基础容器deque来创建 queue 容器

语法:queue<T> q{}

deque<int> values{ 1,2,3 };
queue<int> q3(values);
  • 1
  • 2

注意:deque容器元素类型需要和 deque的容器类型相同

拷贝构造

语法:queue<int> q4(const queue &que)

deque<int> values{ 1,2,3 };
queue<int> q3(values);
queue<int> q4(q3);
  • 1
  • 2
  • 3

2.2、queue队列容器常用的成员函数

queue容器常用的的成员函数如下:

成员函数功能
empty()判断队列是否为空
size()返回队列中的元素个数。
front()返回队列中第一个元素。如果队列是常量,就返回一个常引用;如果队列为空,返回值是未定义的。
back()返回队列中最后一个元素。如果队列是常量,就返回一个常引用;如果队列为空,返回值是未定义的。
push(const T& obj)在队列的尾部添加一个元素的副本。这是通过调用底层容器的成员函数 push_back() 来完成的。
push(T&& obj)以移动的方式在队列的尾部添加元素。这是通过调用底层容器的具有右值引用参数的成员函数 push_back() 来完成的。
pop()移除队列中的第一个元素。

代码实例:

#include<iostream>
using namespace std;
#include<queue>
#include<list>

void test1(){
	
	//默认构造
	queue<int> q1;

	//list容器构造
	queue<int, list<int>> q2;

	//deque容器构造
	deque<int> values{ 1,2,3 };
	queue<int> q3(values);

	//拷贝构造
	queue<int> q4(q3);

	for (int i = 0; i < 10; i++)
	{
		q2.push(i);
	}
	cout << "q1.size: " << q1.size() << endl;
	cout << "q1首个元素: "<< q2.front() << endl;
	cout << "q1末尾元素: "<< q2.back() << endl;

	//遍历容器访问队列元素
	while (!q2.empty())
	{
		cout << q2.front() << endl;
		//出队
		q2.pop();
	}
}

int main()
{
	test1();
	system("pause");
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/355200
推荐阅读
相关标签
  

闽ICP备14008679号