我有这个在 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 中编译
错误信息在第三行:
error C2664: 'std::_Vector_iterator<_Myvec>::_Vector_iterator(const std::_Vector_iterator<_Myvec> &)' : cannot convert parameter 1 from 'ILBCOM_FieldStruct **' to 'const std::_Vector_iterator<_Myvec> &'
你有没有看错?
最佳答案
std::vector<T>::iterator
没有从 T*
转换的构造函数.它确实有一个复制构造函数:
FieldsVector::iterator it(m_coll.begin()+Index-1);
关于c++ - 无法转换参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10388811/