![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
IvanoffAndrey |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 8.7.2006 Где: СГАУ Репутация: нет Всего: 2 |
При написании контейнера описанного в темах форума раннее возник интересный вопрос:
Что если принудительно контейнер был удален, а итераторы на него остались? Как отконтролировать эту ситуацию? --------------------
Размерность пространства есть число Pi и в каждой точке вселенной оно стремиться к этому числу. |
|||
|
||||
Fazil6 |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 35 Всего: 60 |
никак. Вообще итераторы надо испльзовать по месту. Итераторы хранить где-то и периодически использовать не самая лучшая идея. Не только удаление контейнера сделает итераторы невалидными. Многие операции с контейнером к этому приводят |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
IvanoffAndrey, я тебе уже объяснял это в другой теме. Повторю ещё раз.
Есть два типа итераторов: быстрые(они будут использованны в релизной сборке) и отладочные(они используются в отладочной версии). Первые итераторы не должны делать никаких проверок... Они должны считать, что все контракты(предусловия, постусловия, инварианты и т.д.) выполнены. Вторые же, наоборот, должны проверять выполнение всех контрактов и в случае чего должны выкидывать исключения или как-то иначе уведомлять разработчика о том, что у него кривые руки. Никогда не нужно в ущерб производительности оберегать другого программиста от его ошибок(разумеется, ты должен чётко документировать, как использовать твой контейнер "чтобы всё было хорошо"). Вот юзера - сколько угодно. А если программер криворукий, то никакие проверки его не спасут. -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |