结构数组的模糊引用

时间:2013-04-07 21:25:43

标签: c++

我遇到了一些代码问题,现在是:

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.

任何想法?

1 个答案:

答案 0 :(得分:1)

您很可能偶然发现了您的结构与std::count标头中定义的<algorithm>算法之间的冲突。命名空间旨在避免这些类型的冲突,因此将它们用于此目的。包含该标题后的using namespace std;会将std::count和其他大量内容放入您放入该语句的范围内,这样可以轻松实现冲突。只需在std中使用std::添加内容,而不是引入整个内容。