在 Visual Studio 调试中检查 STL 容器

新手上路,请多包涵

如果我有一个 std::vectorstd::map 变量,并且我想查看内容,那么调试时看到第 n 个元素会很痛苦。是否有插件或一些技巧可以在调试时更容易观察 STL 容器变量 (VS2003/2005/2008)

原文由 kevin42 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

对于矢量,msdn 论坛上的这个 线程 有一个代码片段,用于在矢量索引上设置监视,这可能会有所帮助。

原文由 christopher_f 发布,翻译遵循 CC BY-SA 2.5 许可协议

这是旧的,但由于我经常偶然发现这篇文章,因为它仍然在谷歌上被引用很高,截至 Visual Studio 2019,人们可以简单地在调试器的 Watch 中编写:

 vectorName.data()

(用您的变量名替换vectorName)以获取指向内容的指针。

然后,知道向量的当前大小,您可以告诉调试器显示前 N 个单元格:

 vectorName.data(),N

(N 是你的向量的大小)

如果像我一样,你有很多实际存储另一个数据结构的字节向量,你甚至可以告诉调试器将指针解释为其他东西的数组:

 (float*)vectorName.data(),4

例如,我有一个 16 字节的 std::vector,使用它我可以告诉调试器向我显示一个包含 4 个浮点数的数组(这对我来说比单独的字节更有用)。

原文由 Scylardor 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题