0

我有这个在 VC++ 6.0 中编译得很好

typedef std::vector<ILBCOM_FieldStruct*> FieldsVector;
FieldsVector m_coll;
FieldsVector::iterator it(&m_coll[Index-1]);
m_coll.erase(it);

我需要在 Visual Studio C++ 2010 中编译

错误信息在第 3 行:

错误 C2664:'std::_Vector_iterator<_Myvec>::_Vector_iterator(const std::_Vector_iterator<_Myvec> &)':无法将参数 1 从 'ILBCOM_FieldStruct **' 转换为 'const std::_Vector_iterator<_Myvec> &'

你看出什么不对了吗?

4

1 回答 1

4

std::vector<T>::iterator没有从 转换的构造函数T*。它确实有一个复制构造函数:

FieldsVector::iterator it(m_coll.begin()+Index-1);
于 2012-04-30T18:44:01.547 回答