如何使用 vs2010 在调试模式下查看 boost:unordered_map 中的值
我有以下代码...
typedef boost::unordered_map<int, boost::unordered_map<int, float>* > User_item_rating_map;
如您所见,地图的值是一个指针。我怎样才能得到地图上的值。如果我使用 (*(ret[int]))[int]
,我似乎无法获取该值。我做错了什么?
I have the following code...
typedef boost::unordered_map<int, boost::unordered_map<int, float>* > User_item_rating_map;
As you can see, the value of the map is a pointer. How can I get the value in the map. If I use (*(ret[int]))[int]
, I can't seem to get the value. What am I doing wrong?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
文件 AUTOEXP.DAT 是告诉 Visual Studio 如何在调试器中表示数据结构的文件。
有些描述可能非常简单,例如 CSize 的描述:
但它们也可能非常复杂,例如 bitset 的描述:
您可以为 boost unordered_map 编写自己的描述,或者可能其他人已经为您完成了。看看 https://svn.boost.org/trac/boost/ticket/4209 (这似乎是您需要的东西)。
The file AUTOEXP.DAT is the file that tells Visual Studio how to represent data structures in the debugger.
Some of the descriptions can be quite easy, like this one for CSize:
But they can also be very complex, like this one for bitset:
You can either write your own description for the boost unordered_map, or possibly someone else already did it for you. Take a look at https://svn.boost.org/trac/boost/ticket/4209 (this seems like the thing you need).
我也遇到了同样的问题,去看看是否有来自 Boost Ticket #4209 有效,但没有。我可以看到元素的总数,但看不到内容。
因此,选择是切换到 VS2012,它有一个 插件,或者投资计算修改 VS2010 中的格式并修复现有的建议代码。
或者,这就是我所做的,使用 std::tr1::unordered_set / map 代替。 Visual Studio 中有一个可视化工具。并且,稍后,在调试之后,如果您愿意,可以切换回升压。
I had the same trouble, went to see whether the suggested fix from Boost Ticket #4209 worked, which didn't. I could see the total number of the elements, but not the content.
So, the choices are, to switch to VS2012, for which there is a Plug-In, or invest in figuring out the format in VS2010 and fixing the existing suggested code.
Or, and that's what I did, use std::tr1::unordered_set / map instead. There is a visualizer for it in Visual Studio. And, later on, after debugging, if you wish, switch back to boost.
使用文本编辑器打开文件 autoexp.dat。
您通常可以在以下位置找到它:
将以下代码添加到 [Visualizer] 部分。应在另一个可视化工具的定义之后添加此代码。
例如,我已将其添加到行之前,
在您的下一个调试会话中它应该可以工作。
我已经使用 Microsoft Visual Studio 2010 版本 10.0.40219.1 SP1Rel 和 boost 1.61.0 对其进行了测试。
Open your file autoexp.dat with a text editor.
You usually find it in:
Add the following code to the section [Visualizer]. This code should be added after the definition of another visualizer.
For instance I have added it before the rows
On your next debug session it should work.
I've tested it with Microsoft Visual Studio 2010 Version 10.0.40219.1 SP1Rel and boost 1.61.0.