Я планирую реализовать список вещей на С++, где элементы могут быть удалены из строя. Я не ожидаю, что мне понадобится какой-либо случайный доступ (мне просто нужно периодически просматривать список), и порядок элементов тоже не важен.
Поэтому я подумал о std::list<Thing*> with this->position = insert(lst.end(), thing)
, чтобы сделать трюк. Я бы хотел, чтобы класс Thing запомнил позицию каждого экземпляра, чтобы я мог более легко выполнять lst.erase(this->position)
в постоянное время.
Однако я все еще немного новичок в С++ STL-контейнерах, и я не знаю, безопасно ли хранить итераторы в течение такого длительного времени. Особенно, учитывая, что будут удалены другие элементы вперед и после вставленного Thing до того, как он исчезнет.