Я пытаюсь примерно понять, как работает adjacency_list
в boost, и не понимаю, как дескрипторы края могут оставаться действительными после вызова remove_edge
при использовании EdgeList
из std::vector
.
Насколько я понимаю, дескрипторы вершин и ребер являются индексами в центральном хранилище вершин и ребер списка смежности (также каждый std::vector
). Когда ребро удаляется, не должно ли это сделать недействительным дескриптор (индекс) всех ребер после удаления в хранилище? Или, по крайней мере, тот край, который был перемещен с конца, чтобы заполнить пробел?