"_comp"不能用作函数错误
'_comp' cannot be used as a function error
我正在获取"'_comp'不能用作stl_algobase.h头文件中的函数"错误。这是我的代码,也是应该具有错误的标题文件的一部分。代码:
#include<iostream>
#include<algorithm>
using namespace std;
void subsqr(int a[10][10]){
//int s[][10];
for(int i =1;i<5;i++){
for(int j = 1;j<5;j++){
if(a[i][j] == 1){
a[i][j] = min(a[i][j-1], a[i-1][j],a[i-1][j-1]) + 1;
}
}
}
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
cout<<a[i][j]<<"t";
}
cout<<endl;
}
}
int main(){
int a[10][10] = {{0,1,1,0,1}, {1,1,0,1,0}, {1,1,1,0}, {1,1,1,1,0}, {1,1,1,1,1}, {0,0,0,0,0}};
subsqr(a);
return 0;
}
stl_algobase.h:
template<typename _Tp, typename _Compare>
inline const _Tp&
min(const _Tp& __a, const _Tp& __b, _Compare __comp)
{
//return __comp(__b, __a) ? __b : __a;
if (__comp(__b, __a))
return __b;
return __a;
}
编译器说该错误在线
if (__comp(__b, __a))
这可能不是问题,但是您的min函数的标题指定它需要3个参数:类型__TP和类型_compare的2个参数,但在您的程序中,您可以使用3个类型来称呼它__TP:
a[i][j] = min(a[i][j-1], a[i-1][j],a[i-1][j-1]) + 1; // the third parameter is an int, not a function !
编辑:如果您想找出三个数字的最小值,请考虑使用INT和float,请考虑指定Comp函数。要快速修复,请替换我在此中突出显示的行:
std::min({a[i][j-1], a[i-1][j], a[i-1][j-1]});
相关文章:
- "error: no matching function for call to"构造函数错误
- 为什么类中的ostringstream类型的成员会导致";调用隐含删除复制构造函数";错误
- 尝试将unique_ptrs推送到向量时使用纯虚拟函数错误
- C++ OpenCV 卡尔曼滤波器构造函数错误
- C++:用户定义的显式类型转换函数错误
- C++ 合并字符串以'system'函数错误
- C++ wmain 函数错误时使用 Unicode
- 结构数组的构造函数错误,错误消息:没有构造函数实例与参数列表匹配
- C++ 中常量属性的初始化构造函数错误
- 线程 std::调用未知类型,无法专门化函数错误
- 表单显示对话框函数错误,并且不执行下面的语句
- 函数错误 C2059:语法错误:'>'不起作用
- STL向量上出现奇怪的复制构造函数错误
- C++ Visual Studio 重载函数错误:没有重载函数的实例与指定的类型匹配
- C++引用已删除函数错误
- 为什么通过带有文字编号的引用调用会出现"无匹配函数"错误?
- C++ 乘法定义的构造函数错误消息似乎错误
- 在 c++ 代码中将数组传递给函数错误
- FFMPEG avcodec_decode_video2函数错误代码
- 为什么我会收到转换函数错误