【发布时间】:2010-07-23 08:00:08
【问题描述】:
我有一个 typedef,一个具有使用该类型的成员向量的类,然后是一个使用 std::
#typedef DWORD WordNo_t;
class CWordList : public CObject
{
public:
WordNo_t* begin() { return m_Words.begin(); }
WordNo_t* end() { return m_Words.end(); }
void truncate (WordNo_t *Ptr)
{
if (Ptr == end())
return;
ASSERT (Ptr >= begin() && Ptr < end());
// following line generates C2664
m_Words.erase (Ptr, end());
}
private:
std:vector<WordNo_t> m_Words;
}
详细的错误是:
错误 C2664:“std::_Vector_iterator<_myvec> std::vector<_ty>::erase(std::_Vector_const_iterator<_myvec>,std::_Vector_const_iterator<_myvec>)”:无法将参数 1 从“const WordNo_t”转换为'std::_Vector_const_iterator<_myvec>'
对 STL 很陌生...任何帮助将不胜感激。
【问题讨论】:
-
如果您是新手,请联系good book。