我在調試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