[英]Range based for-loop for priority_queue
像这样定义我的priority_queue,
priority_queue<int> parts(start, start+N, less<int>());
以下代码无法编译
for(int t : parts){
...
}
这使我产生疑问:
在C ++ 11中, 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
cousins),但不包括作为容器适配器且不公开迭代器的堆栈,队列或优先级队列。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.