gpt4 book ai didi

c++ - Priority_queue 的基于范围的 for 循环

转载 作者:行者123 更新时间:2023-12-02 08:45:28 44 4
gpt4 key购买 nike

像这样定义我的priority_queue,

priority_queue<int> parts(start, start+N, less<int>());

以下代码无法编译

for(int t : parts){
...
}

这让我产生疑问:

在 C++11 中,是否允许基于范围的 for 循环 std::priority_queue

一般来说,哪些结构允许使用基于范围的 for 循环进行迭代?

我知道我可以做几乎同样的事情:

while(!parts.empty()){
cout << "Next element: " << parts.top() << endl;
parts.pop();
}

是否可以遍历队列?

最佳答案

不,std::priority_queue 不支持基于范围的 for 循环。

基于范围的 for 循环适用于数组以及具有 begin()end() 成员函数的类。这包括 C++ 标准库中的所有容器以及 std::string(及其 basic_string 表兄弟),但不包括堆栈、队列或优先级队列是容器适配器并且不公开迭代器。

关于c++ - Priority_queue 的基于范围的 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26310564/

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