繁体   English   中英

调试断言失败的映射/集合迭代器不可取消

[英]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 
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM