【发布时间】:2022-02-01 08:26:30
【问题描述】:
我是 C++ 新手,仍在学习这些概念。我正在尝试将带有自定义比较器的优先级队列传递给模板化函数。当我将它传递给函数定义中的函数时,我想在优先级队列模板参数列表中抽象比较器类型。下面是我正在尝试做的一个示例。
File1.h
struct my_comparator
{
bool operator()(const some_type* c1, const some_type* c2){
c1->property < c2->property;
}
another_funtion(….)
{
std::priority_queue<const some_type*, std::vector<const some_type*>, my_comparator> my_queue;
some_function(my_queue);
}
File2.h
some_function(std::priority_queue<const some_type*, std::vector<const some_type*>, comparator_type> queue_)
{
//implementation
}
我想了解在 some_function 定义的优先级队列模板中作为比较器类型传递的内容,以便它可以接受我在调用函数的文件中定义的任何自定义比较器(遵守所需的格式)(在这种情况下是 File1.h)。
P.S:这是我第一次在这里发帖。对于任何格式错误,请提前致歉。谢谢!
【问题讨论】:
标签: c++ templates comparator priority-queue abstraction