【发布时间】:2016-04-28 09:27:46
【问题描述】:
我收到错误“向量下标超出范围”。我知道这意味着我在向量中调用了一个不存在的索引。但是我怎样才能找到有问题的向量呢? Windows 调试器似乎没有多大帮助。
【问题讨论】:
-
如果无法访问(或不喜欢使用)调试器,您可以将大部分代码存根,直到错误消失,然后恢复一步,存根较小的部分,依此类推,直到您盯着相关的行。
-
一个开箱即用的解决方案是用您自己的类覆盖向量,该类在调用真正的 Vector 之前检查您的索引,并且在超出范围索引的情况下,通过您的代码传递设置断点。
-
您可以将向量
operator[]更改为.at()调用,然后在调试器中捕获异常。