22.03.2007, 20:58. Просмотров 2843. Ответов 4
Доброго времени суток! Есть вектор. Вектор хранит указатели на объекты. У объектов есть поле [value]. Это поле используется для сравнения объектов. В некоторый момент, после обработки очередного объекта [A] мне необходимо удалить физически и из вектора объект с значением [value] меньшим чем у объекта [A]. После удаления, мне необходимо продолжить поиск объектов с значением [value] меньшим чем у [A] , и т.д. Т.е. необходимо удалить n-ое количество объектов на основе [value].
После удаления элемента итератор остается некорректным. А все дело в том, что мне необходимо как-то запомнить объект [A]. Напрашивается способ - запоминать указатель хранимый в [A]. И, каждый раз , после удаления элемента восстанавливать итератор на [A] по запомненному значению указателя.
Сортировать не годится. Ресурсы памяти есть главный критерий, а при сортировке возможно выделение вектором дополнительной памяти под свои нужды. Критерий по которому начинают удаляться объекты - нехватка памяти.
Корректно ли это?
|