先生们好日子
因为看起来我的不会那么好。
我有一个类 C,它没有任何子类,但有一个由指向另一个类的实例的指针组成的向量,我们称它为 B:
class C
{
public:
...
std::vector<B*> elements;
...
}
B 也有一个指向另一个类实例的指针向量,我们称它为 A:
class B
{
public:
...
std::vector<A*> elements2;
...
}
C 有一个方法可以遍历 elements 和 elements2 的元素,工作方式如下:
std::vector<B*>::iterator it1;
std::vector<A*>::iterator it2;
for (it1=this->elements.begin(); it1!=this->elements.end(); ++it1)
{
for (it2 = it1->elements2.begin(); it12=it1->elements2.end(); ++it2)
{
it2->do_something(); //method of class A
}
}
但是编译器(g++)一直告诉我在(类层次结构)中没有 operator!= 的匹配项。
有人知道我做错了什么吗?'<' 等其他运算符似乎也不起作用。
我不是新手,但这是我第一次在 C++(前 Python 程序员)中使用迭代器,我真的不知道我的代码有什么问题。
提前感谢您的帮助,我为此失去了头发!
编辑:我正在添加整个错误以供参考。我对其进行了编辑以适应问题,我希望我没有搞砸任何事情:
在 'it1 != ((C*)this)->C::elements.std::vector<_Tp, _Alloc>::end with _Tp = B*, _Alloc = std:: 中不匹配 'operator!='分配器'</p>