表达式必须具有(指向 - )函数类型

时间:2015-09-02 14:32:18

标签: c++ pointers reference

目标:此代码计算数字之间的距离(每个数字是任何城市的位置)我编写了代码,但当我使用“算法”库中包含的“min”函数时,“表达式必须具有(指针 - to-)函数类型“将发生错误。

这是一个代码:

    #include<iostream>
#include<algorithm>
using namespace std;
int main(){
    int noc, ele, min, max,arr[100];

    cin >> noc;

    for(int i = 0;i < noc;i++)
        cin >> arr[i];



    for(int i = 0;i < noc;i++){
        if(i == 0)
            cout << abs(arr[0] - arr[1]) << "  " << abs(arr[0] - arr[noc - 1]) << endl;
        else if(i == noc - 1)
            cout << abs(arr[noc - 1] - arr[noc - 2]) << "  " << abs(arr[noc - 1] - arr[0]);
        else{
            min(4 ,5 ,6);
        }
    }

    return 0;
}

2 个答案:

答案 0 :(得分:3)

您有两个问题:

名为min的变量会影响std命名空间中的函数。出于这个原因,你通常不应该写using namespace std;

std::min不会使用三个参数来返回最小的,只有两个。你可以对它进行链接调用,或者在C ++ 11中你可以使用初始化列表重载:

std::min(std::min(4,5),6);
//or
std::min({4,5,6});

答案 1 :(得分:1)

您还使用min作为变量名,并且由于您已将std命名空间中的所有符号都放在using namespace std的全局命名空间中,您认为可以使用{ {1}}没有为min添加前缀。 但是因为还有一个名为min的局部变量,它优先。

tldr:不要使用std::,也不要将局部变量命名为全局函数。

相关问题