Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/127.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 查找数组中的元素和出现的次数_C++_Search - Fatal编程技术网

C++ 查找数组中的元素和出现的次数

C++ 查找数组中的元素和出现的次数,c++,search,C++,Search,我需要帮助以升序查找排序列表中元素的出现次数 我设置了以下代码,但在最后一行代码的“expected parameter declarator”结尾处出现了一个错误。它还说我以前没有binarySearch函数的原型。这到底是什么意思?我查了一下,一开始我声明了int-binarySearch,但是我运气不好。我真的不知道为什么这段代码没有运行,我花了两个小时调试 #include <iostream> #include <algorithm> #include <

我需要帮助以升序查找排序列表中元素的出现次数

我设置了以下代码,但在最后一行代码的“expected parameter declarator”结尾处出现了一个错误。它还说我以前没有binarySearch函数的原型。这到底是什么意思?我查了一下,一开始我声明了int-binarySearch,但是我运气不好。我真的不知道为什么这段代码没有运行,我花了两个小时调试

#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;  


//sort then search


int binarySearch(int arr[], int value, int left, int right) {
    while (left <= right) {
        int middle = (left + right) / 2;

        if (arr[middle] == value)
            return middle;
        else if (arr[middle] > value)
            right = middle - 1;
        else
            left = middle + 1;
    }

    return -1;

}

int main()  
{  
    int a[] = {12,3,4,4,4,5,6,7};

    int num;  

    num = sizeof(a)/sizeof(int);

    for(int i=0; i<num; i++)  
        cout<<a[i]<<" ";  
    cout<<endl;

    int value;

    cout<<"Enter a value you want to find in the array."<<endl;
    cin>>value;

    cout<<"The element is at "<<int binarySearch(int a[], value, 0, int num);
}  
#包括
#包括
#包括
使用名称空间std;
//排序然后搜索
int二进制搜索(int arr[],int value,int left,int right){
while(左值)
右=中-1;
其他的
左=中+1;
}
返回-1;
}
int main()
{  
int a[]={12,3,4,4,4,5,6,7};
int-num;
num=sizeof(a)/sizeof(int);

对于(int i=0;i,调用函数的方式不是这样的。不能只复制函数定义行并替换一个或两个参数。将该行替换为:

cout<<"The element is at "<<binarySearch(a, value, 0, num);

coutUnless这是需要它的家庭作业,您不需要(或想要)编写自己的二进制搜索。
std::equal_range
将为您提供所需的内容。函数的原型将是行
int-binarySearch(int[],int,int,int,int)
这些是您通常在类主体中找到的。在定义全局函数之前,如果没有警告,则会发出警告。