矢量int迭代器

时间:2013-09-07 22:13:18

标签: c++

我正在尝试使用迭代器运行int s的向量。每次我执行它时,我只得到0的值。两个向量都有其中的有效数据。

OffenseNameDown是用户输入的私有成员数据。

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;   

2 个答案:

答案 0 :(得分:1)

if (Down = *itrdown) 

来吧,这本书中最古老的技巧:)

if (Down == *itrdown)

是正确的。

答案 1 :(得分:0)

if (Down = *itrdown)

应该是

if (Down == *itrdown)

前者不是比较,只是作业,同时你的意思是第二:比较。

但是,这里有一个更重要的教训:在建造时打开警告。如果你已经完成了,你就不会错过这个,除非你在没有评估它们的情况下忽视警告,这不是一个好主意。

这可能是了解这种情况的一个更重要的教训,因为你根本不需要调试这样的问题。 ; - )