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

Nested vector iteration ignoring outside vector position

我想遍历嵌套向量,忽略外循环当前所在的对象。注意:这段代码只是我程序的一个简短草稿,以免与我目前的实现产生混淆。

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";
    }
}