gpt4 book ai didi

c++11 - 对 'rank'的引用不明确

转载 作者:行者123 更新时间:2023-12-02 10:44:19 24 4
gpt4 key购买 nike

我非常努力地找出我的错误在哪里!这是我的功能:

#include <iostream>
#include <algorithm>
using namespace std;
bool lessThan(int a , int b) { return (a<b); }

int rank(int a[] , int n , int value , int lo , int hi) {
if(lo > hi) return -1;
int mid = (lo + hi) / 2;
if(value < a[mid]) return rank(a , n , value , lo , mid - 1);
else if(value > a[mid]) return rank(a , n , value , mid + 1 , hi);
else return mid;
}

int rank(int a[] , int n , int value) {
sort(a , a + n , lessThan);
return rank(a , n , value , 0 , n - 1);
}

它是检查数组是否包含value的函数。我以为我以错误的方式将数组传递给rank(),所以我尝试了这个:
void test(int a[] , int n) {
for(int i = 0 ; i < n ; ++i) cout << a[i];
}

但这使我很困惑。请告诉我我的错误在哪里。

最佳答案

使用-std=c++03模式编译代码或更改rank名称,因为自c++ 11起,库-rank中存在rank结构。您可以删除using namespace std;行以避免此错误,但是您需要在每次调用标准库函数(即std::sort)之前添加std::前缀。

关于c++11 - 对 'rank'的引用不明确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50902596/

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