c++ - 我可以修改 std::priority_queue 以增加重复数据的计数吗?

标签 c++ c++11 data-structures tree priority-queue

以下代码创建了一个优先级队列,其中存储了 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 以便它检测重复的单词并增加计数变量,而不是添加重复的条目?

最佳答案

由于 std::priority_queue 需要严格的弱排序,您的数据基本上与其不兼容。修改它应该是不可能的。你唯一能做的就是自己重新实现它。以 std::set 作为基本类型应该是个好主意,因为它已经使元素保持排序。

关于c++ - 我可以修改 std::priority_queue 以增加重复数据的计数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20319298/

相关文章:

c++ - 使用 lambda 和全局函数调用 ranges::for_each

json - 使用 json 数据的 Food 类的正确结构

c++ - 堆栈(数据结构)实现

sorting - 最快的插入/排序数据结构

c++ - g++ 调用的等效 gcc 标志

c++ - 绑定(bind)成员函数

c++ - 运行时错误 : addition of unsigned offset

c++ - 从 std::vector<std::vector<T>> 中删除任意项目列表

c++ - 使用 double 比 float 快吗?

c++ - 编译器用来决定 move 操作是否安全的标准是什么?