我在调试C++类时碰壁了。这是各种各样的图形,这样的事情:在Visual Studio调试模式下的“浅”显示STL容器?
class Graph {
class Node {
std::map<int, Node>::iterator _neighbors[4];
};
std::map<int, Node> _map;
};
基本上,每个节点通过存储迭代器将它们包含类地图跟踪周围恰好有4。
的问题是,当我去调试期间在VS2008中显示_MAP的内容,我得到的是这样的:
- _map
- [0]
first
- second
- _neighbors
- _ptr
first
- second
- _neighbors
- _ptr
first
- second
- _neighbors
...
显然,而不是用索引0中列出了4个相邻的节点在地图上,它列出了它的第一个邻居,然后是第一个邻居的第一个邻居,然后是它的第一个邻居,等等。另外,_neighbors
在任何时候都不会以数组的形式出现,即使它是这样声明的。
我发现了一个名为VSEDebug的插件,它被认为具有增强的STL显示效果,但它是针对VS2k3的,我无法在2k8中使用它(无论是二进制还是自己编译)。
即时窗口也没有太大的帮助,因为试图呼叫_map.operator[]
返回与CXX0058: Error: overloaded operator not found
。
任何想法如何才能获得我的地图内容的有意义的显示?请注意,我对整个VS相当陌生,所以我可能需要详细的说明。 :)
可能的重复:http://stackoverflow.com/questions/104959/what-is-the-best-way-to-inspect-stl-containers-in-visual-studio-debugging – 2009-09-03 10:54:21
VS 2008对我来说显示地图很友好地。 – sbi 2009-09-03 12:40:53