gpt4 book ai didi

C++函数指针;没有匹配功能

转载 作者:行者123 更新时间:2023-11-28 08:09:05 25 4
gpt4 key购买 nike

所以我有一个作业要求我使用随机快速排序,我发现使用函数指针有问题。

排序函数在rqs.cpp中:

template <typename Item_Type>
void rqs_with_range(std::vector<Item_Type> &vec, int p, int q,
int (*cmp)(Item_Type, Item_Type));

然后在我的 cpp 文件中,我有这样的东西:

class Table{
constructor....
vector< vector<string>* >* holder; // table
int compare_str(vector<string>* a, vector<string>* b) {
return a->at(compare_column) < b->at(compare_column) ? -1 :a->at(compare_column) == b->at(compare_column) ? 0 : 1;
}

void rqs{
rqs_with_range( (*holder) , 1, int(holder->size()-1), &Table::compare_str);
}
}

编译器说我在函数 rqs 中有错误,没有匹配的函数。我的比较函数是表的成员函数,会不会是问题的原因?

最佳答案

是的,这是一个问题。

您可以将其设为自由函数或静态成员。否则,您有一个隐藏的 this 参数会影响函数签名。

关于C++函数指针;没有匹配功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9548499/

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