Почему не может я индексировать станд.:: вектор в непосредственном окне?

Так, у меня есть вектор

 std::vector<std::string> lines. 

Я заполняю этот вектор и могу получить доступ к нему как

 std::string temp = lines[0];

Однако в непосредственном окне, обоих

 lines[0] - error:overloaded operator not found

и

 lines.at(0) - error:symbol is ambiguous

не работайте вообще. Есть ли прием к использованию непосредственного окна с C++. Я главным образом происхожу из среды C#, где все работает приятно (и у меня есть intellisense в Непосредственном Окне). Я не ожидал, что C++ будет большим, но я полагал, что он будет работать на вещи помимо ints. Кто-либо может сказать мне, что я делаю неправильно?Спасибо.

Править: Я должен быть ясным, ничто действительно не работает в непосредственном окне, это - просто упрощенный пример

Править: Я нахожусь в режиме отладки

13
задан Brandon 15 July 2011 в 01:26
поделиться

1 ответ

Окна непосредственного наблюдения и наблюдения не поддерживают перегруженных операторов. Там есть некоторая поддержка печати стандартных контейнеров в целом разумным способом (см., например, http://www.virtualdub.org/blog/pivot/entry.php?id=120), но это не распространяется на возможность использования на них оператора оператора[].

Надеюсь, что это будет улучшено в последующих редакциях отладчика, но пока, чтобы посмотреть на i-й элемент вектора, попробуйте строки._Myfirst[i].

(_Myfirst, в стандартных библиотеках, которые поставляются с VC++, случайно оказывается переменной-членом в std::vector, которая указывает на первый элемент последовательности. Таким образом, это просто рассмотрение вектора, как если бы это был любой другой объект. Чтобы разобраться в этом, пришлось посмотреть на заголовки... не очень удобно, но надеюсь, что это вам поможет. Наверное, можно сделать что-то похожее с другими контейнерами, но для того, чтобы разобраться, как...

(Кстати, если вы работали на C#, то отладчик C++, наверное, покажется для сравнения чуть менее скользким в целом, и это только один из примеров. У меня сложилось впечатление, что в сторону CLR было вложено гораздо больше работы)

.
15
ответ дан 2 December 2019 в 00:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: