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