通过多集创建优先级队列
Creating a Priority Queue via Multiset
我正在为类做一个作业,我们必须使用 multiset 创建一个优先级队列对象。 我几乎知道该怎么做,但我在多集的语法方面遇到了一些麻烦。 这是我对优先级队列的类定义:
template< typename E >
class MyPriorityQueue
{
public:
MyPriorityQueue();
~MyPriorityQueue();
MyPriorityQueue(const MyPriorityQueue &);
MyPriorityQueue operator=(const MyPriorityQueue &);
void put(E item);
E get();
bool empty();
int size();
private:
multiset<E> queue;
};
当我编译代码时,我在"多集队列"行收到有关"缺少类型说明符"和"在';"之前意外标记"的错误消息。 我可能不正确地格式化了该行,或者我假设 multiset 只能用于存储一个变量是不正确的?
任何帮助都非常感谢。 :) 非常感谢您的时间!
如果您有可从
优先级队列类访问的using namespace std;
,则queue
是一种类型。所以说
multiset<E> queue;
是非法的。
出于此原因,头文件中没有#using namespace
语句。将您的queue
重命名为其他名称,例如myQ
,但一定要从您的 .h 或其包含的文件之一中删除#using namespace std
。
相关文章:
- C++优先级队列,按对象的唯一指针的特定方法升序排列
- 按对象的特定方法按升序排列的C++优先级队列
- 使用2个键的cpp-stl::优先级队列排序不正确
- 为什么我需要C++中不同的排序格式来对这个USACO代码上的数组和优先级队列进行排序
- 打印优先级队列
- 带自定义比较器的最小优先级队列
- 优先级队列自定义比较器
- 排序数组优先级队列
- 更改运行时优先级队列的排序功能
- 优先级队列构造函数的工作
- 实现优先级队列
- 优先级队列功能比较
- 在C++中打印对的优先级队列的所有值时出现问题
- 使用堆的优先级队列,具有相同键的值不遵循 FIFO(先进先出)
- 为什么某些 STL 容器(堆栈、队列、优先级队列)不支持迭代器?
- 是否可以使用简单队列创建优先级队列
- 如何在 c++ 中创建对的优先级队列.这会弹出具有最小值的元素.默认的弹出最大值
- Cython中带有自定义比较器的优先级队列
- 优先级队列比较器[C++].
- asio::io_service 具有多个线程的优先级队列处理