C++ queue遍历输出问题

C++ queue遍历输出问题,第1张

目录
  • 前言
  • 主要 *** 作
  • 遍历元素错误方式
  • 遍历元素正确方式
    • 方式1
    • 方式2(推荐)

前言

queue为C++中的队列容器,具有先进先出的特点。
不支持迭代器、不能进行随机访问和遍历。

主要 *** 作

入栈 *** 作:push(xx)
出栈 *** 作:pop()
返回第一个元素:front()
返回最后一个元素:back()
原为为空:empty()
主要 *** 作示意图:

遍历元素错误方式
#include 
#include 
#include 
#include 
using namespace std;
void print1()
{
	cout << "ptint1" << endl;
}
void print2()
{
	cout << "ptint2" << endl;
}
void print3()
{
	cout << "ptint3" << endl;
}


int main()
{

	queue< std::function<void()> > tasks;
	tasks.emplace(print1);
	tasks.emplace(print2);
	tasks.emplace(print3);
	
	//不提供迭代器,不能进行随机遍历,只能通过front从头部取出和d出元素的方式
	for (auto i = 0; i < tasks.size();i++)
	{	
		function<void()> task;
		task = std::move(tasks.front());
		tasks.pop();
		task();		
	}
	system("pause");
	return 0;
}

结果,只会输出第一个元素,即:

ptint1
遍历元素正确方式 方式1
for (;;)
	{
		if (tasks.empty())
			break;
		function<void()> task;
		task = std::move(tasks.front());
		tasks.pop();
		task();
	}
方式2(推荐)
while (!tasks.empty())
	{
		function<void()> task;
		task = std::move(tasks.front());
		tasks.pop();
		task();
	}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/717072.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-25
下一篇 2022-04-25

发表评论

登录后才能评论

评论列表(0条)

保存