我需要帮助。当试图在一组,我得到以下错误迭代:无法迭代设置
Error 1 error C2440: 'initializing' : cannot convert from 'std::_Tree_const_iterator<_Mytree>' to 'compound_objectNS::Compound_object *' c:\program files (x86)\microsoft visual studio 10.0\vc\include\xmemory 208
我得到了下面的代码:从文件“compound_object.cpp” 提取物:
typedef compound_objectNS::Compound_object OBJECT
bool OBJECT::operator== (const Compound_object &object) const
{
return this == &object;
}
bool OBJECT::operator< (const Compound_object &object) const
{
return this->m_numberOfObject < object.m_numberOfObject;
}
这里,让集来排序元素我重载运算符 “==” 和 “<”
客户端文件:
for (objectImitatorNS::set<compound_objectNS::Compound_object*>::iterator it = Objects->begin();
it != Objects->end(); ++it)
{
this->m_imitatedObjects->insert(it);
}
正如我想出的错误是当行
this->m_imitatedObjects->insert(it)
执行。
如何解决这个问题?
'insert'确实可以“取一个迭代器”,只是不在OP所寻找的过载中......(例如'insert(it,0)'将会“工作”)。 – 2012-08-13 06:04:24
当然可以。我编辑过,说带有一个参数的版本不需要迭代器。 – Cornstalks 2012-08-13 06:05:31
谢谢!工作正常 – 2012-08-13 06:12:37