gpt4 book ai didi

c++ - 模板运算符重载

转载 作者:行者123 更新时间:2023-11-28 01:40:13 24 4
gpt4 key购买 nike

所以我正在编写一个代码来对某些东西进行排序。我在类 term.cpp 中有我的定义

friend bool operator<(Term T1, Term T2);

然后在我提供的模板中,我们实现了合并排序算法

void SortingList<T>::merge_sort(int (*compare)(T T1, T T2));

现在假设我有以下内容

SortingList<Term> randomList;
randomList.merge_sort(???);

所以我的问题是我应该在 ???我试过了

randomList.merge_sort(Term::operator<(Term T1, Term T2));

但它没有用,我很困惑,我不知道编译器如何将运算符放入 merge_sort 实现中

最佳答案

您必须创建一个 compare如果要求返回一个包装器 int .这将转换 booloperator< 返回

int compareTerm(Term T1, Term T2)
{
if (T1 < T2)
return -1;
else if (T2 < T1)
return 1;
else
return 0;
}

然后直接通过compareTermmerge_sort .

关于c++ - 模板运算符重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47481418/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com