У меня есть класс, объявленный так:
class Level
{
private:
std::vector<mapObject::MapObject> features;
(...)
};
, и в одной из его функций-членов я пытаюсь перебрать этот вектор следующим образом:
vector<mapObject::MapObject::iterator it;
for(it=features.begin(); it<features.end(); it++)
{
/* loop code */
}
Это кажетсядля меня это просто, но g ++ дает мне такую ошибку:
src/Level.cpp:402: error: no match for ‘operator=’ in ‘it = ((const yarl::level::Level*)this)->yarl::level::Level::features.std::vector<_Tp, _Alloc>::begin [with _Tp = yarl::mapObject::MapObject, _Alloc = <code>std::allocator<yarl::mapObject::MapObject>]()’
/usr/include/c++/4.4/bits/stl_iterator.h:669: примечание: кандидаты: __gnu_cxx::__normal_iterator<yarl::mapObject::MapObject*,
std:: vector>> & __gnu_cxx::__normal_iterator<yarl::mapObject::MapObject*,
std :: vector> >::operator=(const __gnu_cxx::__normal_iterator<yarl::mapObject::MapObject*, ``std::vector<yarl::mapObject::MapObject, std::allocator<yarl::mapObject::MapObject> > >&)
Кто-нибудь знает, почему это происходит?