Ответ 1
Я нашел одно решение, которое не зависит от внутренних элементов класса. По-видимому, расширенная форма вызова оператора работает для меня. В этом случае это следующий код:
v.operator[](0)
Я тестировал его на Visual С++ 2012.
При переходе через следующий образец кода в Visual Studio 2012:
std::vector<int> test;
test.resize(1);
test[0] = 4;
Я могу установить часы на тест и проверить его 0-й элемент. Однако, если я устанавливаю часы на тест [0], я получаю ошибку "нет оператора" [] "соответствует этим операндам":
Как я могу напрямую проверить значение теста [0]?
Я нашел одно решение, которое не зависит от внутренних элементов класса. По-видимому, расширенная форма вызова оператора работает для меня. В этом случае это следующий код:
v.operator[](0)
Я тестировал его на Visual С++ 2012.
Как отметил @NateKohl, в Visual Studio 2012 (и, возможно, более ранних версиях) v._Myfirst
дает указатель на базовые векторные данные, позволяя вам смотреть вектор так, как если бы он был массивом.
Visual Studio не поддерживает перегрузку оператора stl контейнеров [], вам просто нужно вручную установить часы на интересующий вас элемент, выбрав его из списка во время отладки.
EDIT: если вы хотите проверить объект T внутри вектора, назначьте его объекту T и установите вместо него часы
если вы используете 2D vecotr < вектор < string → dp, и вы хотите получить dp [i] [j] в окне просмотра в VS2013, вы можете использовать (dp.operator [] (i)). operator [] (j)
вектор < вектор < string → dp (n, vector <string> (n, ""));
(dp.operator [] (i)). operator [] (j)