Форум программистов, компьютерный форум CyberForum.ru

Контейнер на пободия hash_map. - C++

Восстановить пароль Регистрация
 
Fox235
Сообщений: n/a
01.09.2011, 18:19     Контейнер на пободия hash_map. #1
Всем привет.
Столкнулся с такой задачей, нужно написать собственный контейнер на подобие hash_map. Почитал Страуструпа, некоторые моменты понятны по созданию контейнеров.
Но для меня остается загадкой:
1) работа аллокатора. (хотя как я думаю для меня он все равно будет закрытым ящиком)
2) способ добавления элементов. (как я понимаю по структуре очень похоже на двустороннюю очередь)

Если кто-то писал что-то вроде этого, то посоветуйте с чего надо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.09.2011, 18:19     Контейнер на пободия hash_map.
Посмотрите здесь:

Контейнер с указателями на... C++
Контейнер set C++
C++ контейнер
C++ Контейнер map ?
Контейнер hash_map C++
C++ Stdext::hash_map и std::map
C++ Контейнер map
Hash_map unordered_map C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Overmind024
99 / 99 / 6
Регистрация: 10.09.2010
Сообщений: 267
01.09.2011, 19:52     Контейнер на пободия hash_map. #2
Аллокатор - это класс, инкапсулирующий некоторые детали реализации выделения и освобождения памяти.

По Стандарту должен иметь вложенные типы:

value_type
pointer
const_pointer
reference
const_reference
difference_type
size_type
rebind<U>

Должен иметь конструктор по умолчанию, копирования. Оператор сравнения и самое главное
метод allocate(n) который возвращает указатель на выделенную область.

deallocate(p,n) где p указатель на ранее выделенную область.
max_size()
construct(p,t) p указывает на неинециализированую область, размер которой не меньше sizeof(t)
Эквивалентно new((void*)p)T(t).

destroy(p)
adreess(r) метод возвращает адрес r.


Ну а насчет hash_map то добавление происходит так: берется ключ при помощи функции хеширования получается его хеш сумма. После чего пара хеш сумма, значение добавляется в бинарное дерево поиска.
Yandex
Объявления
01.09.2011, 19:52     Контейнер на пободия hash_map.
Ответ Создать тему
Опции темы

Текущее время: 11:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru