【发布时间】:2015-07-24 07:30:43
【问题描述】:
在我需要创建一个数据结构(为类型参数化为一个普通的模板,这部分没问题),但还有一个我想作为模板参数传递的比较函数。 如何实施? 谢谢
编辑:请求的伪代码(在 cmets 中)
template <class T, "syntax for the compare function?">
class myclass
{
'I have to refer in some way to the compare function here?'
... }
myclass:: myfunctionusingcomparefunction(){
if('how to use the compare function here?'){...
}else{...}
}
EDIT2:更好的解释
我要问的是如何实现一个能够与模板类型的元素进行比较(或应用函数)的类。 我提到了标准模板类的优先级队列类,因为它允许选择一个覆盖 operator() 的模板类来比较元素(这在有序插入中是必需的): 在 std::priority_list 情况下,第二个模板参数是比较器类。
priority_list<ObjectType, ObjectComparatorType> myQueue;
【问题讨论】:
-
我不确定你在问什么。
std::priority_queue已经允许你指定一个比较函数作为它的第三个模板参数。 -
是的,我只是举个例子。我想对我的班级做这样的事情,因为我想将一个比较函数传递给一个班级,我会知道正确的语法以及如何处理它@MilesBudnek
-
写一些伪代码
-
@Daniel 点击链接并从那里复制原型。或者在您的硬盘驱动器(或只是编译器安装的头文件)中搜索名为
queue的文件,然后您就可以确切地看到它是如何工作的。或者找到相同的online。 -
@Potatoswatter 好的,谢谢,我现在检查
标签: c++ templates priority-queue standard-library