我想遍历嵌套向量,而忽略外部循环当前位于的对象。注意:这段代码只是我程序的简要草稿,以免与当前的实现混淆。

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的对象。

最佳答案

只需比较迭代器即可,例如:

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

09-30 20:29