如何将比较对象或函数传递给类函数
How to pass compare object or function to class function
我将实现数据结构、段树、堆(优先级队列)。然而,我只想写一次,我可以将compare对象或compare函数传递到它中,这样我就可以将它设置为max-heap或min-heap(过去,我必须写两个类)。
问题是如何将比较对象或比较函数传递给类函数
这就是我想做的
struct heap{
SomeType comp;
void init(SomeType f){
comp = f;
}
...
}
当我想比较时,我会使用
comp(A, B); // << want it to return as bool
如何将类似greater<int>
或less<pair<int, int> >
的比较对象设置为我的结构?
如果我想写我的比较对象或函数,我该怎么做。
抱歉我英语不好非常感谢。
将heap
作为模板,如下所示:
template<typename SomeType, typename Compartor = std::less<SomeType> >
struct heap
{
// ....
};
然后可以做:
heap<int, std::greater<int> > h;
否则你可以有一个std::function<bool(heap const& lhs , heap const& rhs )> func ;
在您的heap
中,并接受func
作为来自外部世界的成员函数中的参数。
相关文章:
- 在类构造函数中传递对外部函数的引用
- 在C++中,如何在类和函数(可能是模板化的)的头中编写完整的实现
- 将自由函数绑定为类成员函数
- 带有类的函数指针
- 如何在qt中从另一个类调用函数
- 具有enable_if外部类原型的模板类构造函数定义
- 如何将一个类的函数作为另一个类的另一个函数的参数传递
- 自动重复 extern "C"函数中的类构造函数采用的相同参数
- C++ 继承:将子类传递给需要基类的函数并获取子类行为
- 类的前向声明之后的类成员函数定义,在类声明之前
- 模板化类构造函数的模板实例化
- 从类成员函数到类 C 函数指针的转换
- C++派生的类构造函数
- 在类构造函数中使用结构变量
- 在类构造函数中定义结构变量的参数
- 如何定义一个没有重复代码的继承的 const 类成员函数?
- 为什么下面的模板化类成员函数无法编译?
- 调用原子的 store() 时可以调用基类型类的函数吗?C++
- 模板化检查是否存在带有参数列表的类成员函数?
- 为什么类构造函数为其成员生成析构函数?