Я хочу стереть элемент из контейнера, который в настоящее время используется в циклическом цикле for. Это приведет к неопределенному поведению? Или следующее значение element
после erase()
будет таким, каким должен быть следующий элемент, если я не вызвал erase()
?
Пример:
std::map<int, int> someMap;
/* Fill in someMap */
for (auto& element : someMap)
{
/* ... */
if ( /* Some condition */ )
someMap.erase(element.first);
}