以下代码创建一个优先级队列,用于存储Entry类型。
struct Entry{
//constructor
Entry(std::string const& word_)
: word(word_)
, count(0)
{}
//let's say I overloaded the comparison operators as well.
//data
std::string word;
unsigned int count;
};
std::priority_queue<Entry> entries;
是否可以修改以下priority_queue,以便它检测到重复的单词并递增计数变量,而不是添加重复的条目?
答案 0 :(得分:1)
由于std::priority_queue
需要严格弱排序,因此您的数据基本上与它不兼容。不应该修改它。你唯一能做的就是自己重新实现它。从std::set
开始作为基本类型应该是个好主意,因为它已经对元素进行了排序。