С++ - язык, который изучается постепенно.ГЛАВА 15. Алгоритм уплотнения
                   Справочники Всё для создания сайта

Ссылки


Home
Бизнес
Справочники
Советы







Материалы книги получены с http://www.itlibitum.ru/

Алгоритм уплотнения

Алгоритм уплотнения выглядит так просто, что его можно было бы и не приводить.

class Space {

private:

unsigned long next_byte;

unsigned char bytes[SPACESIZE];

public:

Space() : next_byte(0) {}

void* Allocate(size_t size);

void Compact();

};

void* Space::Allocate(size_t size)

{

// Выровнять на границу слова

size = ROUNDUP(size);

if (next_byte + size > SPACESIZE)

{

Compact();

if (next_byte + size > SPACESIZE)

// Исключение - нехватка памяти

}

void* space = &bytes[next_byte];

next_byte += size;

return space;

}

void Space::Compact()

{

next_byte = 0;

VoidPtrIterator* iterator = VoidPtrPool::iterator();

while (iterator->More())

{

VoidPtr* vp = iterator->Next();

void* space = Allocate(vp->size);

if (space < vp->address) // Проверить, что объект поместится

}

delete iterator;

}


Назад    Содержание    Далее    

Home  Создание сайтов  Учебник по записи CD  Справочник Web дизайнера Самоучитель IE PHP и MySQL Компьютерные сети С++ E-mail me

Copyright 2007. Климов Александр. All Right Reserved.
Hosted by uCoz