1

我遇到了一些代码问题,这里是:

struct count {
int times;
string abrev;
};

count result[100];
count match;

for(int i=0; i<abbrev.size(); i++)
{
    for (int n=0; n<inputtext.size(); n++)
    {
        if (abbrev[i] == inputtext[n])
         {
            match.times = 1;
            match.abrev = abbrev[i];
            result[i] = match;

         }

    }
}

for(int k=0; k<100; k++)
{
    cout << result[k].abrev << "" << result[k].times << endl;
}

inputtext 和 abbrev 是我没有包含在这个复制/粘贴中的向量,我知道它们无论如何都可以工作。但我使用 codepad.org 检查了我的代码,显然是以下行:

count result[100];

是不是问题,原因是:

Line 35: error: reference to 'count' is ambiguous

compilation terminated due to -Wfatal-errors.

有任何想法吗?

4

1 回答 1

1

您很可能偶然发现了结构和std::count算法之间的冲突,在<algorithm>标题中定义。命名空间旨在避免此类冲突,因此将它们用于此目的。包含using namespace std;该标头后std::count的 , 以及您放入该语句的范围内还有很多其他内容,这允许容易发生冲突。只需在前面加上前缀stdstd::而不是把整个东西都带进来。

于 2013-04-07T21:34:30.267 回答