Более генерируемый метод:

я есть этот код:

int main()
{
    vector<int> res;
    res.push_back(1);
    vector<int>::iterator it = res.begin();
    for( ; it != res.end(); it++)
    {
        it = res.erase(it);
        //if(it == res.end())
        //  return 0;
    }
}

«Итератор произвольного доступа, указывающий на новое местоположение элемента, который следует за последним элементом, стертым при вызове функции, который является концом вектора, если операция стерла последний элемент в последовательности».

Этот код вылетает, но если я использую if (it == res.end ()), а затем возвращает, он работает. Как придешь? Обрабатывает ли цикл for функцию res.end (), чтобы оператор неравенства не работал?

Ответы на вопрос(9)

Ваш ответ на вопрос