相关疑难解决方法(0)

如何使用指针实现c ++ priority_queue的排序方法

我的优先级队列声明为:

std::priority_queue<*MyClass> queue;

class MyClass {
    bool operator<( const MyClass* m ) const;
}
Run Code Online (Sandbox Code Playgroud)

没有排序队列中的项目.

怎么了?我不想实现不同的(比较)类.

答案摘要:

问题是,指针地址是排序的.避免这种情况的唯一方法是"比较指针"的类.

现在实现为:

std::priority_queue<*MyClass, vector<*MyClass>, MyClass::CompStr > queue;

class MyClass {
    struct CompStr {
        bool operator()(MyClass* m1, MyClass* m2);
    }
}
Run Code Online (Sandbox Code Playgroud)

c++ priority-queue

9
推荐指数
2
解决办法
2万
查看次数

标签 统计

c++ ×1

priority-queue ×1