0

そのため、学校の課題のためにハフマン圧縮/圧縮解除を作成する必要があり、周波数を格納する優先キューを使用するのに問題があります。

頭を悩ませている 2 つのファイルはHCNode.hpp、 とmain.cpp. オーバーロードしたHCNode.hppファイルと、次のように優先度キューを初期化しようとしbool operator<(const HCNode& other)main.cppとき:

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

コンパイラは私にたくさんのエラーをスローします

編集:これはエラーの1つです

/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 に答える