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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Fox235
Сообщений: n/a
#1

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

01.09.2011, 18:19. Просмотров 591. Ответов 1
Метки нет (Все метки)

Всем привет.
Столкнулся с такой задачей, нужно написать собственный контейнер на подобие hash_map. Почитал Страуструпа, некоторые моменты понятны по созданию контейнеров.
Но для меня остается загадкой:
1) работа аллокатора. (хотя как я думаю для меня он все равно будет закрытым ящиком)
2) способ добавления элементов. (как я понимаю по структуре очень похоже на двустороннюю очередь)

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

Контейнер hash_map - C++
Здорова! Нужно создать контейнер hash_map это тот же контейнер как и map, только он в разы иногда раз в 10-20 быстрее осуществляет поиск...

Hash_map unordered_map - C++
class P{ public: int x, y; friend bool operator< (const P u, const P v) { if(u.x < v.x) { return true; } else...

Hash_Map Error (C2338) - C++
1) Ребята, начинал учить C++ и как всегда и как у всех, не без проблем. Пробовал писать в DevC++, все хорошо, но потом понял, что рано или...

Stdext::hash_map и std::map - C++
Здравствуйте форумчане! Может ли кто нибудь объяснить мне отличие stdext::hash_map от std::map? В интернете не так много информации о нем,...

Ошибка <hash_map> при выполнении программы - C++
При выполнении простого консольного проекта C++ #include &quot;std_lib_facilities.h&quot; int main() { cout &lt;&lt; &quot;I hate u, VS!\n&quot;; ...

Чем отличается map и hash_map в плюсах? - C++
Чем отличается map и hash_map в плюсах? с hash_map еще не работал, хочу разобраться есть ли семантические отличия и в чем заключаются.

Подскажите контейнер - C++
Нужно: Делать вставку по ключу, полный обход, удаление по ключу. Дубли не разрешены, сортировка не важна. Ключ std::pair&lt;int,int&gt;. ...

Контейнер с указателями на... - C++
Можно ли создать контейнер с указателями на функции, и если да, то как можно вызывать эти функции? Все функции с одим аргументом.

Контейнер-список - C++
Помогите пожалуйста!!!Скоро экзамен! Создайте контейнер список с элементами типа char. Заполните список символами. Поочередно извлекайте...

класс-контейнер - C++
ArrayList — реализует интерфейс List. Как известно, в Java массивы имеют фиксированную длину, и после того как массив создан, он не может...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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 то добавление происходит так: берется ключ при помощи функции хеширования получается его хеш сумма. После чего пара хеш сумма, значение добавляется в бинарное дерево поиска.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru