элемент и удалять что-то, пока проходишься по этой структуре. Тот же std::set в плюсах безопасно разрешает это делать.
for(auto it = set.begin(); it != set.end();) {
if(...) {
it = set.erase(....);
} else {
++it;
}
}
Я как понимаю в расте нет возможности так делать в не unsafe коде?
Нету. Что бы это сделать, нужно одновременное существование изменяемой и неизменяемой активных ссылок на контейнер, это запрещается базовыми правилами языка.
Это и в плюсах вроде уб, по крайней мере на векторе
Можно сложить все плохие ключи в вектор, а потом разом поудалять.
BinaryHeap могет, только с верхним элементом правда оно чз while и не оч симпатишно
Обсуждают сегодня