Мне нужно удалить элемент из std::list
после поиска std::find
. Каково поведение вызова std::list::erase
с end()
списка? Мой случай что-то вроде этого:Каково поведение стирания `end()` `std :: list`?
std::list<T> mylist;
T value;
std::list::iterator it = std::find(mylist.begin(), mylist.end(), value);
std::list::iterator next = mylist.erase(it);
cplusplus.com говорит:
Если позиция (или диапазон) является действительным, функция никогда не бросает (гарантия нет броска) исключения. В противном случае это вызывает неопределенное поведение.
, но я не знаю, является ли end()
действительным.
'end()' один за последним элементом. –
cplusplus.com также выходит за рамки авторитетных источников. Вместо этого смотрите cppreference.com. – Potatoswatter
@Potatoswatter: Интернет находится за пределами авторитетных источников. См. Спецификацию языка. –