當通過在Visual Studio 2012下面的示例代碼步:向量「不操作‘[]’匹配這些操作數」在Visual Studio中的錯誤看
std::vector<int> test;
test.resize(1);
test[0] = 4;
我可以測試設置監視和檢查其零元件。不過,如果我設置測試的手錶[0],我得到的錯誤「沒有運營商‘[]’這些操作數相匹配」:
我怎麼能檢查測試值[0]直接?
當通過在Visual Studio 2012下面的示例代碼步:向量「不操作‘[]’匹配這些操作數」在Visual Studio中的錯誤看
std::vector<int> test;
test.resize(1);
test[0] = 4;
我可以測試設置監視和檢查其零元件。不過,如果我設置測試的手錶[0],我得到的錯誤「沒有運營商‘[]’這些操作數相匹配」:
我怎麼能檢查測試值[0]直接?
我發現一個解決方案不依賴於類的內部。操作員調用的擴展形式似乎適用於我。在這種情況下,它下面的代碼:
v.operator[](0)
我在Visual C++ 2012
Visual Studio不支持stl容器的operator []重載,只需在調試時從列表中選擇它,手動設置您感興趣的元素的監視。
編輯:如果你想檢查一個向量裏面一件T對象,將其分配給一個T類型的對象並在其上設置觀測代替
如果向量有10000個元素,並且您想要看到元素5000,該怎麼辦?有沒有一種方便的方法來做到這一點? –
不幸的是,我擔心你必須首次手動完成。 – mewa
關於你的編輯:如果你正在通過一個DLL,這不是一個選項。在這種情況下你會做什麼? –
由於@NateKohl指出,在Visual Studio 2012(也可能是早期版本的well)v._Myfirst
給出了一個指向底層向量數據的指針,允許你像觀察數組一樣觀察向量。
如果使用2D vecotr <矢量<字符串>> DP,和你想獲得DP [我測試] [j]的在VS2013觀察窗口,則可以使用(dp.operator [](I))。操作符[](J)
矢量<矢量<字符串>> DP(N,矢量<串>(n,「」));
(dp.operator [](I))。運營商[](J)
你有沒有在Release或Debug模式下編譯? –
調試,很好的問題。 –
請注意,當您調用'resize'時,迭代器和引用通常會失效。 –