我想循环遍历嵌套向量,忽略外循环当前所在的对象。注意:此代码只是我的程序的简短草稿,以免引起我当前实现的混淆。
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处检查对象。
答案 0 :(得分:1)
只需比较迭代器,例如:
if(it1 != it2)
{
if((*it1)->no == (*it2)->no)
{
cout << "matched";
}
else
{
cout << "no match";
}
}