«Невозможно увеличить итератор конечного списка» Ошибка времени выполнения (Visual C ++) - PullRequest
0 голосов
/ 25 ноября 2018

Всякий раз, когда я помещаю любое количество элементов в свой список и пытаюсь преобразовать их в неупорядоченную карту с целым числом внутри элемента списка в качестве ключа, я получаю сообщение об ошибке об итераторе конечного списка, когда пытаюсь стеретькаждый элемент в списке.Мой код ниже.

for (auto iter = tList.begin(); iter != tList.end(); iter++)
    {
        tMap[(*iter)->getID()] = move(*iter);
    }
//Specifically it's this section here with 2 iterators I'm having an issue with
    for (auto iter = tList.begin(); iter != tList.end(); iter++)
    {
        for (auto iter2 = iter; iter2 != tList.end(); iter2++)
        {
            tList.erase(iter, iter2);
            iter2++; 
            //Intentional so iter2 goes up by 2 each time while the first iter goes up by 1
        }
    }
    for (pair<int, Item *> e : tMap)
    {
        cout << e.first << " " << e.second << endl;
    }
    for (auto iter = t.begin(); iter != tMap.end(); iter++)
    {
        tMap.erase(iter);
    }
...