C ++问题,错误C2064:术语不评估为带有1个参数的函数

时间:2011-07-08 10:14:33

标签: c++

请你用C ++中的这个简单代码帮助我,我不知道这里有什么问题?

#include <iostream>
#include <string>
using namespace::std;
template <class Type>
Type binsearch (Type item,Type *table,Type n)
{
    int bot=0;
    int top=n-1;
    int mid, cmp;
    while (bot<= top)
    {
        mid=(bot+top)/2;
        if(item==table(mid))
            return (mid);
        else if (item <table[mid])
            top=mid-1;
        else
            bot=mid+1;
    }
    return -1;
}

int main ()
{

    int nums[]={10, 12, 30, 38, 52, 100};
    cout<< binsearch(52, nums, 6);
}

4 个答案:

答案 0 :(得分:1)

table(mid)应该是table[mid]

答案 1 :(得分:1)

必须如此     if(item==table[mid])

if(item==table(mid))

答案 2 :(得分:1)

问题是您混淆了[(。而不是

---
mid=(bot+top)/2;
if(item==table(mid))
    return (mid);
---

你需要

+++
mid=(bot+top)/2;
if(item==table[mid])
    return (mid);
+++

答案 3 :(得分:0)

if(item==table(mid))

应该是

if(item==table[mid]) //notice square brackets []
              ^   ^