我试图通过将字母及其相应值保存到地图中然后将地图插入优先级队列来实现霍夫曼编码。尝试声明队列时出现参数转换错误。我到底应该把什么作为参数?我在这里得到的是我最好的猜测。
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;*/
}
我觉得问这个有点愚蠢,但彻底的谷歌搜索并没有让我得到答案。非常感谢您的帮助!