Почему вызов std :: vector :: back () приводит к сбою моей программы

Я не уверен, что не так с этим кодом:

std::vector<int> myVector(0);

if (myVector.back() == 12)
    myVector.push_back(12);

Похоже, что вызов back () для пустого вектора приводит к сбою программы.

Я не понимаю, почему он рушится? Нужно ли нам проверять длину вектора перед вызовом back () ? или возможно что это ошибка?

В документации сказано, что если вектор пуст, он возвращает неопределенное значение.

6
задан Antonio Pérez 19 January 2012 в 13:30
поделиться