typedef map, debug assertion on for loop, map/set incompatib
typedef map, debug assertion on for loop, map/set incompatible
所以我在遇到调试断言时正在编码。现在我很想知道为什么这段代码不起作用:
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;
看起来
GetMeshes
返回副本,您正在尝试将一个容器的iterator
与另一个容器的iterator
进行比较。对于 MSVC 中的已检查迭代器,这种比较是无效的。而且,多亏了@Mike西摩,根据C++标准,这种比较是无效的。
相关文章:
- 有没有办法对std::unordered_set、std::unrdered_map、std::set、std::map
- 插入 std::set 作为 std::map 的键
- 如何在 c++ 中使用默认值将 std::set 转换为 std::map
- 为什么map有操作符[],set没有
- libc++ 对 std::map/set::equal_range 的实现给出了意想不到的结果
- 存储在 std::map/std::set 中,与在存储所有数据后对向量进行排序
- 在std :: Map或std :: set中找到具有给定前缀的键的优雅方法
- 如何在<int>错误 C2338 中组织 map<set<multiset>,int> C++
- C++ std::map 和 std::set 擦除复制值,从而使迭代器失效
- Visual Studio xtree _STL_VERIFY(this->_Getcont(), "cannot increment value-initialized map/set ite
- 如何在STL MAP(SET)中的范围中找到所有元素
- map/set迭代器不可递增,我无法从头开始重新启动映射
- typedef map, debug assertion on for loop, map/set incompatib
- map/set :: 插入是否提供了正确的迭代器提示,它的复杂性是多少?
- C ++ map/set 迭代器不能使用 .find 取消引用
- 使用map.erase后,map/set不可延迟
- "map/set iterators incompatible"映射销毁,取决于构造函数调用
- map/set迭代器不是可解引用的c++ map
- 断言失败- map/set迭代器不兼容
- Map /set迭代器不可解引用.多映射容器