调用的对象类型 'int' 不是函数或函数指针
Called object type 'int' is not a function or function pointer
我是 C++ 的新手,因此,我不知道这个错误的原因是什么,我试图递归地解决 edit distance 问题,但是,这个错误出现了。
error: called object type 'int' is not a function or function pointer
return __comp(__b, __a) ? __b : __a;
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int distance(string, string, int, int);
int cost(string, string, int, int);
int main(){
string v = "love";
string v2 = "hate";
cout<<distance(v, v2, v.size()-1, v2.size()-1);
}
int distance(string v, string v2, int a, int b)
{
if (a==0) return b;
if (b==0) return a;
return min(
distance(v, v2, a, b-1)+1,
distance(v, v2, a-1, b)+1,
distance(v, v2, a-1, b-1)+cost(v, v2, a, b));
}
int cost(string v, string v1, int a, int b)
{
if (v[a]==v1[b]) return 0;
return 1;
}
std::min
的第三个参数是比较器,您可能更喜欢采用 initializer_list:
的重载
return min({
distance(v, v2, a, b - 1) + 1,
distance(v, v2, a - 1, b) + 1,
distance(v, v2, a - 1, b - 1) + cost(v, v2, a, b)});
我是 C++ 的新手,因此,我不知道这个错误的原因是什么,我试图递归地解决 edit distance 问题,但是,这个错误出现了。
error: called object type 'int' is not a function or function pointer return __comp(__b, __a) ? __b : __a;
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int distance(string, string, int, int);
int cost(string, string, int, int);
int main(){
string v = "love";
string v2 = "hate";
cout<<distance(v, v2, v.size()-1, v2.size()-1);
}
int distance(string v, string v2, int a, int b)
{
if (a==0) return b;
if (b==0) return a;
return min(
distance(v, v2, a, b-1)+1,
distance(v, v2, a-1, b)+1,
distance(v, v2, a-1, b-1)+cost(v, v2, a, b));
}
int cost(string v, string v1, int a, int b)
{
if (v[a]==v1[b]) return 0;
return 1;
}
std::min
的第三个参数是比较器,您可能更喜欢采用 initializer_list:
return min({
distance(v, v2, a, b - 1) + 1,
distance(v, v2, a - 1, b) + 1,
distance(v, v2, a - 1, b - 1) + cost(v, v2, a, b)});