карта typedef, отладочное утверждение включено для цикла, карта / набор несовместимы

Поэтому я кодировал, когда столкнулся с утверждением отладки.
Теперь я очень заинтересован, почему этот кусок кода не работает:

for(Model::MeshMap::iterator it = obj1->GetMeshes().begin(); it != obj1->GetMeshes().end(); it++)

и этот кусок кода делает:

Model::MeshMap obj1meshes = obj1->GetMeshes();
for(Model::MeshMap::iterator it = obj1meshes.begin(); it != obj1meshes.end(); it++)

В модельном классе у меня есть это:

typedef std::map<std::string, Mesh*> MeshMap;

0

Решение

Это выглядит как GetMeshes возвращает копию и вы пытаетесь сравнить iterator одного контейнера с iterator другого контейнера. Такое сравнение недопустимо с точки зрения проверенных итераторов в MSVC. И, благодаря @Mike Seymour, это сравнение не соответствует стандарту C ++.

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector