Vector'no operator"[]"匹配Visual Studio watch中的这些操作数错误

1''*_*1'' 21 c++ vector visual-studio visual-studio-debugging

在Visual Studio 2012中单步执行以下示例代码时:

std::vector<int> test;
test.resize(1);
test[0] = 4;
Run Code Online (Sandbox Code Playgroud)

我可以设置一个测试手表并检查它的第0个元素.但是,如果我在test [0]上设置一个监视器,我会得到错误'no operator"[]"匹配这些操作数':

在此输入图像描述

如何直接检查test [0]的值?

Max*_*Max 45

我找到了一个不依赖于班级内部的解决方案.扩展形式的操作员调用似乎对我有用.在这种情况下,它是以下代码:

v.operator[](0)
Run Code Online (Sandbox Code Playgroud)

我在Visual C++ 2012中测试过它.


1''*_*1'' 7

正如@NateKohl所指出的那样,在Visual Studio 2012中(也可能是早期版本)v._Myfirst提供了一个指向底层矢量数据的指针,允许您像对待数组一样观察矢量.