C++ STD::使用转换比较优先级队列
给定类C和函数int fC C,创建使用标准引用的std::priority_队列的正确用法是什么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
编写用于优先级队列模板的谓词,即不要使用运算符@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;
}