Я наблюдаю необычное поведение при сравнении двух итераторов.
vector<list<MyClass*>> vlWatchers(10);
list<MyClass*>::iterator itCurrent, itEnd;
for (int i(0); i <= 9; ++i)
{
itCurrent = vlWatchers[i].begin();
itEnd = vlWatchers[i].end();
while (itCurrent != itEnd)
{
//code
}
}
приведет к ошибке несовместимости списков итераторов в строке while () и, вероятно, произойдет, когда i = 0, хотя тольконекоторое время.
При дальнейшем расследовании после вызова ошибки itEnd и itCurrent равны 0xcdcdcdcd.Странная часть, когда я вхожу в оператор! = Сравнения, указатель "this" становится 0xcdcdcdcd.Не должно ли 0xcdcdcdcd быть значением , которое хранится в итераторах, а не адресом самих итераторов?или есть какая-то черная магия итератора, где итератор и хранит значение, и ЕСТЬ значение?Это часть более крупного проекта, но ошибка повторяется.
Заранее благодарен за любую помощь!