2011-11-13 13 views
0

私は学校の割り当てにハフマン圧縮/解凍を書く必要があり、優先度キューを使用して周波数を保存するのに問題があります。C++のユーザー定義オブジェクトの優先順位を使用する際の問題

私に頭痛を与えている2つのファイルはHCNode.hppmain.cppです。

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

コンパイラは

編集私のエラーの束をスローします:ここでの一つである私は、このような優先度キューを初期化しようとすると、HCNode.hppファイルでは、私は私のmain.cppbool operator<(const HCNode& other)を過負荷にしてきましたエラー

/usr/include/c++/4.6/bits/stl_queue.h:391:9:STD :: PRIORITY_QUEUE < _Tp、_Sequence、_Compare>」からインスタンス:: PRIORITY_QUEUE(constの_Compare &、constの_Sequence &)[_Tp = HCNode、_Sequence = STD ::ベクトル、_Compare = STDで::以下]」
compress.cpp:134:59:ここで

からインスタンス化誤差の最もからであると思われますライブラリとの何らかの矛盾。

問題を解決して、先生のコードが不完全でした。しかしこのポストを見た人にありがとう。

+5

エラーメッセージを投稿する必要はありませんか? – kukyakya

答えて

1

投稿したエラーメッセージは正確なエラーメッセージではなく、実際のエラーを引き起こすインスタンス化行です。

エラーが発生する可能性が最も高いのは、コンパレータ(この場合オペレータ<)がconstメンバー関数ではないためです。

constメンバー関数かどうかを確認してください。

+0

エラーの原因となったAha。教師は、彼が私たちに与えたファイルのコンパレータの最後に「const」という単語を忘れてしまった。 – user1043906

関連する問題