小编Bob*_*bby的帖子

C++ STL:使用map with priority_queue

我试图通过将字母及其相应的值保存到地图然后将地图插入优先级队列来实现霍夫曼编码.我尝试声明队列时收到参数转换错误.究竟我应该把它作为参数?我在这里是我最好的猜测.

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)

我觉得有点愚蠢的问这个,但彻底的谷歌搜索并没有得到答案.非常感谢您的帮助!

c++ stl priority-queue map huffman-code

4
推荐指数
2
解决办法
8401
查看次数

标签 统计

c++ ×1

huffman-code ×1

map ×1

priority-queue ×1

stl ×1