【发布时间】:2012-08-31 19:46:30
【问题描述】:
我的程序正在(使用 [] 运算符])将一些数据 [地址] 插入到 std::map 中。我可以跟踪 137 个元素的插入。它们都插入了有效值。
在某个阶段,我迭代地图并尝试对值[地址]进行一些操作 我在开始迭代地图之前设置了一个断点。 当我在调试器中检查地图时,我仍然看到 137 个元素。但是当我迭代它直到
iterator != map.end我发现地图有 138 个值 - 最后一个是非法的。
我需要找到一种方法来检测何时插入最后一个有问题的值。我使用 VS 2010。
谢谢
【问题讨论】:
-
那么,你在哪里打电话给
insert?你用operator[]吗?显示一些代码。 -
我用 [] 运算符。是大公司
s project.I cant 显示代码 -
如果你使用
operator[],你必须确定你想为那个键插入一个值,因为它返回一个引用。它会很乐意为您插入一个值,并且根据您的值类型,很容易将垃圾放入。
标签: c++ visual-studio-2010 debugging map