gpt4 book ai didi

c++ - 为什么 std::queue 不支持 clear() 函数?

转载 作者:IT老高 更新时间:2023-10-28 12:55:56 26 4
gpt4 key购买 nike

我有一个要求:对于一个函数,我将输入作为数字流。我的意思是,该函数在每次调用中都会被单个号码调用。我正在使用 std::queue 来存储数字流。只有在满足某些条件时,我才需要处理一组收集的数字。如果不满足条件,我需要将所有元素放入队列中,然后开始在其中存储新数字。为了清空队列,我找不到 clear() 方法。所以我是这样循环的:

while(!q.empty())
q.pop();

我有一个有效的算法来清除 std::queue

How do I clear the std::queue efficiently?

我的问题是:为什么 std::queue 不支持 clear() 函数?

既然std::dequestd::vector都支持clear()方法,那么支持它的技术难度是什么对于 std::queue?

或者我的上述用例非常罕见,因此不受支持?

最佳答案

除了已经说过的,你可以很容易地清除队列:

queue<int> q;
...
q = queue<int>(); // Assign an empty queue

或在 C++11 中

q = {};

关于c++ - 为什么 std::queue 不支持 clear() 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3874624/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com