C++ STD::使用转换比较优先级队列

C++ STD::使用转换比较优先级队列,c++,templates,stl,C++,Templates,Stl,给定类C和函数int fC C,创建使用标准引用的std::priority_队列的正确用法是什么 编写用于优先级队列模板的谓词,即不要使用运算符@UlrichEckhardt,这是否需要生成函子对象?我还可以如何将谓词放入模板参数?不是对象而是类型。您还可以提供函数指针,这可能是最简单的方法。如果您查找涉及类模板集和映射或算法find_if和sort的示例,您应该能够找到相应的示例。 ``// binary predicate function bool Compare1(C it

给定类C和函数int fC C,创建使用标准引用的std::priority_队列的正确用法是什么


编写用于优先级队列模板的谓词,即不要使用运算符@UlrichEckhardt,这是否需要生成函子对象?我还可以如何将谓词放入模板参数?不是对象而是类型。您还可以提供函数指针,这可能是最简单的方法。如果您查找涉及类模板集和映射或算法find_if和sort的示例,您应该能够找到相应的示例。
  ``// binary predicate function
    bool Compare1(C item1, C item2){
          return f(item1) > f(item2);
    }`   

    //`binary predicate functor
    class Compare2
    {
    public:
        bool operator() (C item1, C item2)
        {
            return f(item1) > f(item2);
        }
    };


int main()
{
    std::priority_queue<C, std::vector<C>, std::function<bool(C, C)>> pq1(Compare1);

    std::priority_queue<C, std::vector<C>, Compare2> pq2;
    return 0;
}