当前位置: 首页 > 知识库问答 >
问题:

c中的abs()错误

令狐和裕
2023-03-14

在这段代码的第35行使用abs()函数出错。编译器我选择了:c(4.3.2)

查看底部的错误。

void bfs(pair<int,int> pixelpos){
bfsq.push(pixelpos);
int u,v,i,j;
pair<int,int> tmpq;
while(!bfsq.empty()){
    tmpq = bfsq.front();
    u = tmpq.first; v = tmpq.second;
    bfsq.pop();
    r(i,u-square_dist,u+square_dist) r(j,v-square_dist,v+square_dist)
      if(inrange(i,j)){
      // ERROR HERE DOWN IN abs() fn
        int dist = abs(pixelpos.first - i) + abs(pixelpos.second -j); // Line: 35
        if(graph[i][j]>dist){
            graph[i][j] = dist;
            bfsq.push(pair<int,int> (i,j));
          }
      }
}

prog.cpp:在函数空bfs(std::对)中:

掠夺。cpp:35:错误:重载“abs(int)”的调用不明确

/usr/include/c/4.3/cmath:99:注:候选项为:双std::abs(双)/usr/include/c/4.3/cmath:103:注:浮点std::abs(浮点)

/usr/include/c/4.3/cmath:107:注:长双标准::abs(长双)

掠夺。cpp:35:错误:重载“abs(int)”的调用不明确

/usr/include/c/4.3/cmath:99:注:候选项为:双std::abs(双)

/usr/include/c/4.3/cmath:103:注:浮点std::abs(浮点)

/usr/include/c/4.3/cmath:107:注:长双标准::abs(长双)

原因可能是什么?

共有1个答案

庞书
2023-03-14

出现错误的原因可能是您没有包括标题<代码>

#include <cstdlib>

标准C函数

int abs(int j);

在C头文件<代码>

尽管C标准允许在全局命名空间中放置标准C名称,但最好使用限定名称,例如

int dist = std::abs(pixelpos.first - i) + std::abs(pixelpos.second -j);
 类似资料:
  • abs

    描述 (Description) 此函数返回其参数的绝对值。 如果传递纯整数值,那么它将按原样返回,但如果传递一个字符串则返回零。 如果省略VALUE则使用$ _ 语法 (Syntax) 以下是此函数的简单语法 - abs VALUE abs 返回值 (Return Value) 此函数返回其参数的绝对值。 例子 (Example) 以下是显示其基本用法的示例代码 - #!/usr/bin/pe

  • 描述 (Description) 此方法接受整数并返回给定整数的绝对值。 语法 (Syntax) 以下是此方法的语法。 Math.abs( x ) 例子 (Example) 以下示例演示了CoffeeScript中abs()方法的用法。 将此代码保存在名为math_abs.coffee的文件中。 value = Math.abs(-1); console.log "The absolute va

  • abs

    abs(计算整型数的绝对值) 相关函数 labs, fabs 表头文件 #include<stdlib.h> 定义函数 int abs (int j) 函数说明 abs()用来计算参数j的绝对值,然后将结果返回。 返回值 返回参数j的绝对值结果。 范例: #ingclude <stdlib.h> main(){ int ansert; answer = abs(-12); printf("|-12

  • ABS

    此方法返回输入数字的绝对值。 语法 (Syntax) ABS(i) 参数 (Parameters) i - 这是需要确定绝对值的输入数字。 返回值 (Return Value) 返回值是输入数字的绝对值。 例子 (Example) /* Main program */ i = 50.5 j = -40.4 say ABS(i) say ABS(j) 当我们运行上述程序时,我们将得到以

  • 描述 (Description) 此方法接受整数并返回给定整数的绝对值。 语法 (Syntax) 以下是此方法的语法。 Math.abs( x ) 例子 (Example) 以下示例演示了CoffeeScript中abs()方法的用法。 将此代码保存在名为math_abs.coffee的文件中。 value = Math.abs(-1); console.log "The absolute va

  • 描述 (Description) 该方法给出了参数的绝对值。 参数可以是int,float,long,double,short,byte。 语法 (Syntax) 以下是此方法的所有变体 - double abs(double d) float abs(float f) int abs(int i) long abs(long lng) 参数 (Parameters) 这是参数的细节 - 任何原