文字とそれに対応する値をマップに保存し、そのマップを優先キューに挿入することで、ハフマンコーディングを実装しようとしています。キューを宣言しようとすると、パラメーター変換エラーが発生します。パラメータとして正確に何を入力する必要がありますか?ここにあるのは私の最善の推測です。
void main()
{
ifstream doc("doc.txt");
map<char, int> C;
char letter;
while(!doc.eof()){
doc.get(letter);
if(letter >= 'a' && letter <= 'z')
C[letter]++;
}
priority_queue<int, map<char,int>, greater<int> > Q(C); //also tried greater<map<char,int>>
/*map<char, int>::const_iterator it;
for(it = C.begin(); it != C.end(); it++)
cout<<it->first<<" "<<it->second<<endl;*/
}
これを尋ねるのはちょっとばかげているように感じますが、徹底的にグーグルで調べても答えが得られませんでした。助けてくれてありがとう!