C++ stl queue(单端队列)和stl deque(双端队列)的区别(与循环队列的区别)

Posted Dontla

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ stl queue(单端队列)和stl deque(双端队列)的区别(与循环队列的区别)相关的知识,希望对你有一定的参考价值。

参考文章1:c++基础之queue和deque比较

参考文章2:C++ queue 和 deque的区别

参考文章3:C++ STL deque容器(详解版)

文章目录

queue示例

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


int main() 

	queue<int> q;

	//cout << "队头元素为:" << q.front() << endl;	//运行报错,队列必须先判空,下同
	//cout << "队尾元素为:" << q.back() << endl;

	for (int i = 0; i < 10; i++) 
	
		q.push(i);
	

	if (!q.empty()) 
	
		cout << "队列q非空!" << endl;
		cout << "q中有" << q.size() << "个元素" << endl;

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

		int size = q.size();
		for (int j = 0; j < size; j++)
		
			cout << q.front() << " ";
			q.pop();
		
		cout << endl;
	

	if (!q.empty()) 
	
		cout << "队列非空!" << endl;
	
	else
	
		cout << "队列为空!" << endl;
	

	system("pause");
	return 0;

参考文章:C++队列(queue、deque)

deque示例

参考文章3:C++ STL deque容器(详解版)

循环队列?

老看有人自行实现循环队列,但直接用stl queue不就行了,还用自行实现循环队列吗?我有点懵逼

看到篇文章说std::deque被相当仔细地定义为线性队列。它的设计并不真正适合循环队列,不知是真是假

参考文章:c++ - 使用 STL 队列的循环队列?

以上是关于C++ stl queue(单端队列)和stl deque(双端队列)的区别(与循环队列的区别)的主要内容,如果未能解决你的问题,请参考以下文章

C++:STL——栈队列和优先级队列的模拟实现

详解C++ STL priority_queue 容器

C++标准模板库(STL)——queue常见用法详解

c++ STL queue:deque+优先队列

C++ 队列!还是要从 STL 中的说起……

C++ 提高教程 STL queue容器(队列)