调试断言失败映射/设置迭代器不可取消引用
Debug Assertion Failed map/set iterator not dereferencable
我有我的地图std::map<const char*, int> uniforms;
当我尝试使用uniforms.find(name)->second
我得到了错误说明。我已经检查了存储在调试模式下的数据,所有数据都如我所期望的那样正确,我可以使用find函数访问其中的大部分数据,但当我尝试访问directionalLight.base.color
时,我收到了错误。就像我说的,它们拼写正确,处于调试模式,但我得到了错误。是绳子上的点吗?
您可能已经过了映射的末尾,所以在取消引用之前,您应该检查它的是否有效
auto it = uniforms.find(name) ; // or std::map<const char*, int>::iterator it ;
if ( it != uniforms.end() )
{
// Now use it->second
}
相关文章:
- 为什么范围算法与 std 的迭代器不兼容?
- 矢量迭代器不能与 std::shared_ptr<> 取消引用
- forward_list迭代器不兼容
- 向量迭代器不兼容的错误,用于保存另一个向量的迭代器的向量
- C++,弹出调试断言失败窗口,我得到矢量迭代器不兼容的错误运行时
- f.getline() 迭代器不增加
- 当我发生碰撞检测时,矢量迭代器不兼容
- 为什么C++字符串迭代器不检查错误?
- debug断言矢量迭代器不可用find_if删除
- 为什么标准容器迭代器不会重载"->*"?
- 为什么反向迭代器不是 C++17 标准下的正式迭代器类别?
- C XTREE崩溃在出口上,映射/设置迭代器不可用
- C++:为什么输出迭代器不支持比较操作?
- 迭代器不兼容错误
- C++向量迭代器不是增量的
- 为什么更多的迭代器不是随机访问?
- 为什么迭代器不返回集合的开头
- 字符串迭代器不兼容错误,当我将字符串转换为矢量<byte>时
- 迭代器不能被另一个相同大小的向量重用吗?
- 字符串迭代器不可用C 问题