为什么C ++不允许这样的东西?
我需要有多个优先级队列,其数量将在运行时确定。
无法编译
std::vector<std::priorityqueue<Class A>>
。
有更好的方法吗?
答案 0 :(得分:6)
正确的代码是:
std::vector<std::priority_queue<A> >
请注意Class
不属于A
旁边,priority_queue
中有下划线,两个右尖括号之间需要一个空格(>>
被解析为右移运算符)。
这还要求A
小于可比较(如果不是,则必须提供优先级队列使用的比较函数)。
答案 1 :(得分:1)
这应该可以正常工作。语法应该是:
std::vector<std::priority_queue<A> >
(注意末尾附近的空格(“”)。