在c++中使用用户定义对象的优先级时遇到问题

Trouble using priority for user defined objects in c++

本文关键字:优先级 遇到 问题 对象 定义 c++ 用户      更新时间:2023-10-16

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

让我头疼的两个文件是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: instantiated from ' std::priority_queue<_Tp, _Sequence, _Compare>::priority_queue(const _Compare&, const _Sequence&) [with _Tp = HCNode, _Sequence = std::vector, _Compare = std::less] '

大多数错误似乎是由于与标准库的某种冲突。

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

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

我认为最可能导致错误的是比较器,也就是operator<</p> 不是const成员函数。

检查是否为const成员函数