忽略外部向量位置的嵌套向量迭代
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";
}
}
我想遍历嵌套向量,忽略外循环当前所在的对象。注意:这段代码只是我程序的一个简短草稿,以免与我目前的实现产生混淆。
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";
}
}