"Нет простого способа просмотреть этот список. a[0][2]
содержит 2"
Вы щелкаете правой кнопкой мыши где-то в коде, выбираете Quick Watch , напишите туда a[0][2]
и с помощью Добавьте часы , которые вы положили в "Часы 1" , чтобы вы могли видеть list<int>
на a[0][2]
правильно.
Когда вы объявляете простой list<int> l;
, Visual Studio показывает это правильно.Вы можете видеть все элементы.
Но когда вы объявляете массив списков следующим образом:
std::list<int> l[2];
l[1].push_back(3);
l[1].push_back(4);
, тогда переменная l
считается указателем на первый std::list<int>
, так что даже если выпомещая элементы в список по индексу 1, Visual Studio просто показывает, что l
- пустой список: some address [0]()
.Я могу видеть l[1]
, только если он находится в Watch:
Возможное решение - заменить простой массив в стиле c ([]
) на std::vector
:
std::vector<std::list<int> > l;
l.resize(2);
l[1].push_back(3);
l[1].push_back(4);
поэтому l
больше не считается указателем на первый list
.Поскольку l
равно vector
Visual Studio правильно отображает все элементы: