我正在尝试使用迭代器运行int
s的向量。每次我执行它时,我只得到0的值。两个向量都有其中的有效数据。
OffenseName
和Down
是用户输入的私有成员数据。
vector <string> :: iterator itr;
vector <int> :: iterator itrdown;
int count = 0;
for (itr = dataOffenseName.begin(); itr!= dataOffenseName.end(); ++itr)
{
if ( OffenseName == *itr )
{
for (itrdown = dataDown.begin(); itrdown != dataDown.end(); ++itrdown)
{
//Here itrdown is always coming at 0. The dataDown vector
//does have valid data in it
if (Down == *itrdown)
{
count++;
}
else
{
break;
}
}
}
}
return count;
答案 0 :(得分:1)
if (Down = *itrdown)
来吧,这本书中最古老的技巧:)
if (Down == *itrdown)
是正确的。
答案 1 :(得分:0)
if (Down = *itrdown)
应该是
if (Down == *itrdown)
前者不是比较,只是作业,同时你的意思是第二:比较。
但是,这里有一个更重要的教训:在建造时打开警告。如果你已经完成了,你就不会错过这个,除非你在没有评估它们的情况下忽视警告,这不是一个好主意。
这可能是了解这种情况的一个更重要的教训,因为你根本不需要调试这样的问题。 ; - )