基本上,我可能做错了什么。 Visual Studio对我大吼大叫,我就像一个聋人,只是坐在那里,一边大吼大叫,一边思考着:"你对我有什么要求?"。无论如何,我已将其缩小为单一的if语句:
for (int i = 0; i < countries.size(); i++) {
for (int x = 0; x < countries.size(); x++) {
if (countries[i].thoughtsof[x] < -50) {
for (int v = 0; v < currentwars.size(); v++) {
if ( (std::find(currentwars[v].Agressors.begin(), currentwars[v].Agressors.end(), countries[i]) != currentwars[v].Agressors.end() || std::find(currentwars[v].Defenders.begin(), currentwars[v].Defenders.end(), countries[i]) != currentwars[v].Defenders.end()) && (std::find(currentwars[v].Agressors.begin(), currentwars[v].Agressors.end(), countries[x]) != currentwars[v].Agressors.end() || std::find(currentwars[v].Defenders.begin(), currentwars[v].Defenders.end(), countries[x]) != currentwars[v].Defenders.end()) ) {
result = true;
}
else {
result = false;
}
if (!result) {
War war(countries[i], countries[x]);
currentwars.push_back(war);
}
}
}
}
}
该错误基本上是这样说的:&#34;二进制&#39; ==&#39;:找不到运算符,该运算符采用类型&#39; Country&#39;的左手操作数。 (或者没有可接受的转换)&#34;
双击它会引导我进入这个区块:
template<class _InIt,
class _Ty> inline
_InIt _Find_unchecked1(_InIt _First, _InIt _Last, const _Ty& _Val, false_type)
{ // find first matching _Val
for (; _First != _Last; ++_First)
if (*_First == _Val)
break;
return (_First);
}
但是,在War类标题中,我将两个向量都设置为Country类:
std::vector<Country> Agressors;
std::vector<Country> Defenders;
如果我形成了不太好的东西,请原谅。只是我正在慢慢陷入疯狂,因为我试图解决这个问题2天。提前谢谢。