C++ 如何在visualc+中查看std::map的内容+。NET(Visual Studio 2003)进行调试时?

C++ 如何在visualc+中查看std::map的内容+。NET(Visual Studio 2003)进行调试时?,c++,visual-studio,debugging,stl,map,C++,Visual Studio,Debugging,Stl,Map,我需要在调试时查看std::map变量的内容。但是,如果我在Autos/Locals选项卡中单击它,我会看到特定于实现的内容,而不是我想要查看的键及其内容。是否有我缺少的解决方案?我没有Visual Studio 2003的副本可供测试,但我刚刚检查了VS2008和2010,它们都会在悬停时自动显示地图的内容。我模模糊糊地记得2003年STL检查时遇到了很多麻烦,所以我猜这是他们在这几年中大幅改进的一项功能 如果你的项目是可能的,你可能会考虑升级到Visual C++ 2008 Express,

我需要在调试时查看std::map变量的内容。但是,如果我在Autos/Locals选项卡中单击它,我会看到特定于实现的内容,而不是我想要查看的键及其内容。是否有我缺少的解决方案?

我没有Visual Studio 2003的副本可供测试,但我刚刚检查了VS2008和2010,它们都会在悬停时自动显示地图的内容。我模模糊糊地记得2003年STL检查时遇到了很多麻烦,所以我猜这是他们在这几年中大幅改进的一项功能


如果你的项目是可能的,你可能会考虑升级到Visual C++ 2008 Express,这是免费的,应该有你需要的大部分特性。但是您可以尝试在“autoexp.dat”中添加以下部分(我确信在VS2003中已经包含了所有标准类型的部分):

------------------------------------------------------------------------------
;  标准::地图
;------------------------------------------------------------------------------
标准::地图{
儿童
(
#树
(
头:$c.(我的头->)父母,
跳过:$c.我的头,
尺寸:$c.\u Mysize,
左:_左,
对
):$e.\u Myval
)
预览
(
#(
"[", 
$e.\u Mysize,
"](", 
#树
(
头:$c.(我的头->)父母,
跳过:$c.我的头,
尺寸:$c.\u Mysize,
左:_左,
对
):$e.\u Myval,
")"
)
)            
}
此文件的结构和autoexp规则的语法可能会随着Visual Studio的不同版本而变化。阅读有关Visual Studio自定义可视化工具的详细信息

;------------------------------------------------------------------------------
;  std::map
;------------------------------------------------------------------------------

std::map<*>{
    children
    (
        #tree
        (
            head : $c._Myhead->_Parent, 
            skip : $c._Myhead, 
            size : $c._Mysize, 
            left : _Left, 
            right : _Right
        ) : $e._Myval
    )

    preview
    (
        #(
            "[", 
            $e._Mysize, 
            "](", 

            #tree
            (
                head : $c._Myhead->_Parent, 
                skip : $c._Myhead, 
                size : $c._Mysize, 
                left : _Left, 
                right : _Right
            ) : $e._Myval,

            ")"
        )
    )            
}