嵌套向量迭代忽略外部向量位置

时间:2015-03-18 04:18:44

标签: c++ vector iterator

我想循环遍历嵌套向量,忽略外循环当前所在的对象。注意:此代码只是我的程序的简短草稿,以免引起我当前实现的混淆。

class A
{
public: 
int no;
}

class B: public A
{
}

class C: public A
{
}

vector<A*> objects;

for(vector<A*>::iterator it1 = objects.begin(); it1 != objects.end(); ++it1)
{
    for(vector<A*>::iterator it2 = objects.begin(); it2 != objects.end(); ++it2)
    {
        if((*it1)->no == (*it2)->no)
        {
            cout << "matched";
        }
        else
        {
            cout << "no match";
        }
    }
}

所以,我想循环遍历内部循环it2,而不是在it1处检查对象。

1 个答案:

答案 0 :(得分:1)

只需比较迭代器,例如:

if(it1 != it2)
{
    if((*it1)->no == (*it2)->no)
    {
        cout << "matched";
    }
    else
    {
        cout << "no match";
    }
}