我遇到了一些代码问题,现在是:
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.
任何想法?
答案 0 :(得分:1)
您很可能偶然发现了您的结构与std::count
标头中定义的<algorithm>
算法之间的冲突。命名空间旨在避免这些类型的冲突,因此将它们用于此目的。包含该标题后的using namespace std;
会将std::count
和其他大量内容放入您放入该语句的范围内,这样可以轻松实现冲突。只需在std
中使用std::
添加内容,而不是引入整个内容。