FILE_INFO_S是个结构体。
m_vectFileInfo.at(nList); 返回一个FILE_INFO_S类型的结构体。vector<FILE_INFO_S>::iterator itr = &m_vectFileInfo.at(nList);
上面这句话在VC6.0中能顺利编译通过。 可到了VS2008就出错,无法编译。
error C2440: “初始化”: 无法从“FILE_INFO_S *”转换为“std::_Vector_iterator<_Ty,_Alloc>”
with
[
_Ty=FILE_INFO_S,
_Alloc=std::allocator<FILE_INFO_S>
]
无构造函数可以接受源类型,或构造函数重载决策不明确找了半天,实在是不明白这是怎么回事。有人知道吗?
m_vectFileInfo.at(nList); 返回一个FILE_INFO_S类型的结构体。vector<FILE_INFO_S>::iterator itr = &m_vectFileInfo.at(nList);
上面这句话在VC6.0中能顺利编译通过。 可到了VS2008就出错,无法编译。
error C2440: “初始化”: 无法从“FILE_INFO_S *”转换为“std::_Vector_iterator<_Ty,_Alloc>”
with
[
_Ty=FILE_INFO_S,
_Alloc=std::allocator<FILE_INFO_S>
]
无构造函数可以接受源类型,或构造函数重载决策不明确找了半天,实在是不明白这是怎么回事。有人知道吗?
我试过了。
还是一样的提示。为什么VC6能编译通过,而VS2008就不行呢。
*itr = m_vectFileInfo.at(nList);
在VS2008中。
vector<FILE_INFO_S>::iterator itr = &m_vectFileInfo.at(index);
改成
vector<FILE_INFO_S>::iterator itr = m_vectFileInfo.begin()+index;