C++ 错误:C+;中的运算符=不匹配+;

C++ 错误:C+;中的运算符=不匹配+;,c++,C++,嗨,我在用g++4.1.2编译时遇到了这个错误 “错误:中的运算符=不匹配” ((PoolElementList*)this)->PoolElementList::i_currentElement=((PoolElementList*)this)->PoolElementList::i_elementList.std::vector::end with _Tp=ModifyTerminationPointReqInfo*,_Alloc=std::allocator PoolElements的定义

嗨,我在用g++4.1.2编译时遇到了这个错误

“错误:中的运算符=不匹配” ((PoolElementList*)this)->PoolElementList::i_currentElement=((PoolElementList*)this)->PoolElementList::i_elementList.std::vector::end with _Tp=ModifyTerminationPointReqInfo*,_Alloc=std::allocator

PoolElements的定义如下:

template <class Element, Element *intialElementPtr>
class PoolElementList
{
        GenericMemoryPool <Element, intialElementPtr> *i_elementPoolPtr;

        vector <Element *> i_elementList;
        vector <Element *> i_currentElement;
public:

  //Define a constructor that takes in a pointer of the pool.
        PoolElementList(GenericMemoryPool <Element, intialElementPtr> *elementPool):
        i_elementPoolPtr (elementPool)
        { 
                i_currentElement = i_elementList.end();   //error is here**
        };
模板
类PoolElementList
{
GenericMemoryPool*i_元素池ptr;
向量i_元素列表;
向量i_元素;
公众:
//定义一个接受池指针的构造函数。
PoolElementList(GenericMemoryPool*elementPool):
i_元素池PTR(元素池)
{ 
i_currentElement=i_elementList.end();//此处有错误**
};
请有人解释一下这可能有什么错误。(这是在g++2.9.x中编译的)

如果(正如您在评论中所说)您打算将
i\u currentElement
作为
std::vector::iterator
,那么您必须将其声明为一个。只需替换它即可

vector <Element *> i_elementList;
向量i_元素列表;

vector::迭代器i_元素列表;

什么是
i\u currentElement=i\u elementList.end()
应该做什么?你是想把
i\u currentElement
变成
std::vector::iterator
?它看起来也像是你的构造函数体以分号结尾。通常,函数体不会。问题是你不能把迭代器分配给向量…你的目标是什么?是的,我想让i\u currentElement成为std::vector::iteratorHi Tyler,感谢您的快速回复,我将代码更改如下:vector::iterator I_currentElement;并获得此错误。错误:类型std::vector不是从类型PoolElementList派生的错误:应为;在I_currentElement之前为什么它们的g++不向后兼容?(我是新手)实际上,我们正在将代码移植到新平台,所以我们正在构建这段旧代码。需要详细了解代码(待定操作项)
vector <Element *>::iterator i_elementList;