Язык С++ |
По последним данным, на рынке продается по крайней мере 2 768 942 книги о С++, не говоря уже о всевозможных курсах, обучающих программах, журналах и семинарах с коктейлями. И все же в этом изобилии наблюдается удручающее однообразие. |
| |
|
Добро пожаловать на сайт студии Web-дизайна "САР" |
Материалы книги получены с http://www.itlibitum.ru/
Уплотнение на месте
Очевидный недостаток алгоритма Бейкера заключается в напрасной потере половины памяти. Существует и другой, мене очевидный недостаток - при каждом проходе все объекты копируются из одного места памяти в другое. Такое копирование может отрицательно повлиять на быстродействие программы. Обе проблемы решаются в другом алгоритме, который называется уплотнением на месте (compaction in place). Вместо двух половин существует единое пространство, а в процессе уплотнения все объекты смещаются вниз. На следующей диаграмме показано состояние памяти до и после уплотнения.
Копирование объектов должно происходить в правильном порядке, снизу вверх, в противном случае объекты будут накладываться друг на друга. Этого можно добиться двумя способами: отсортировать ведущие указатели перед началом перебора или изначально хранить их в отсортированном порядке.
Хранить ведущие указатели в двусвязном списке, отсортированном по адресу указываемого объекта, довольно просто - при условии, что вы готовы потратить лишнюю пару слов для указателей на следующий и предыдущий элемент. Шаблон ведущего указателя и дескрипторы аналогичны тем, которыми мы пользовались до настоящего момента. Базовый класс VoidPtr был усовершенствован для хранения экземпляров в связанном списке.
Назад Содержание Далее
| |
Специальное предложение |
- Регистрация доменного имени в зоне .net.ru или .pp.ru (1 год)
- Хостинг (1 год)
- Готовый дизайн
- Поддержка РНР
- 3 страницы сайта (главная, о фирме, контакты)
- Регистрация в 256 поисковых системах и каталогах
- Форма сообщений
|
|
Размещение объявлений |
Недорого предлагаем разослать ваше рекламное предложение о товарах или услугах на сотни досок объявлений по всему Рунету. |
|
Язык С++ |
Просматривать полку книг о С++ в книжном магазине ничуть не интереснее, чем литературу по бухгалтерии. В сущности, все книги пересказывают одно и то же и отличаются разве что по весу и количеству цветов в диаграммах и таблицах.
|
|
|