C++ 无法转换参数
我有一个在VC++6.0中编译得很好的程序C++ 无法转换参数,c++,C++,我有一个在VC++6.0中编译得很好的程序 typedef std::vector<ILBCOM_FieldStruct*> FieldsVector; FieldsVector m_coll; FieldsVector::iterator it(&m_coll[Index-1]); m_coll.erase(it); typedef std::vector FieldsVector; FieldsVector m_coll; FieldsVector::迭代器it(&m_
typedef std::vector<ILBCOM_FieldStruct*> FieldsVector;
FieldsVector m_coll;
FieldsVector::iterator it(&m_coll[Index-1]);
m_coll.erase(it);
typedef std::vector FieldsVector;
FieldsVector m_coll;
FieldsVector::迭代器it(&m_coll[Index-1]);
m_coll.擦除(它);
我需要在Visual Studio C++ 2010中编译/p>
错误消息在第三行:
错误C2664:'std::_Vector_iterator::_Vector_iterator(常量
std::_Vector_iterator&'):无法将参数1从
“ILBCOM_FieldStruct**”到“const std::_Vector_iterator&”
您是否看到错误?std::vector::iterator
没有从T*
转换的构造函数。它确实有一个复制构造函数:
FieldsVector::iterator it(m_coll.begin()+Index-1);
std::vector::iterator
没有从T*
转换的构造函数。它确实有一个复制构造函数:
FieldsVector::iterator it(m_coll.begin()+Index-1);
试着看试着看清楚,在VC++6中,
std::vector::iterator
只是T*
;从那时起,它就成了一个合适的迭代器类;从那时起,它就成了一个合适的迭代器类。