0

所以我需要为我的学校作业编写霍夫曼压缩/解压缩,并且我在使用优先级队列来存储频率时遇到了麻烦。

让我头疼的两个文件是HCNode.hppmain.cpp. 在HCNode.hpp我重载的文件中bool operator<(const HCNode& other) 以及main.cpp当我尝试初始化这样的优先级队列时:

 priority_queue< HCNode, vector < HCNode >, less< HCNode> > freq;

编译器向我抛出了一堆错误

编辑:这是错误之一

/usr/include/c++/4.6/bits/stl_queue.h:391:9: 从 'std::priority_queue<_Tp, _Sequence, _Compare>::priority_queue(const _Compare&, const _Sequence&) [with _Tp = HCNode, _Sequence = std::vector, _Compare = std::less]'<br> compress.cpp:134:59: 从这里实例化

大多数错误似乎来自与图书馆的某种冲突。

没关系,修复了问题,老师的代码不完整。不过感谢那些看过这篇文章的人。

4

1 回答 1

1

您发布的错误消息不是确切的错误消息,而是导致实际错误的实例化行。

我认为最可能导致错误的原因是比较器(在这种情况下为 operator<)不是 const 成员函数。

检查它是否是 const 成员函数。

于 2011-11-13T08:15:28.813 回答