Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Fox235
#1

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

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

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

Если кто-то писал что-то вроде этого, то посоветуйте с чего надо
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.09.2011, 18:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Контейнер на пободия hash_map. (C++):

Контейнер 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? В интернете не так много информации о нем,...

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

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

1
Overmind024
99 / 99 / 6
Регистрация: 10.09.2010
Сообщений: 267
01.09.2011, 19:52 #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 то добавление происходит так: берется ключ при помощи функции хеширования получается его хеш сумма. После чего пара хеш сумма, значение добавляется в бинарное дерево поиска.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.09.2011, 19:52
Привет! Вот еще темы с ответами:

контейнер - C++
Создать контейнер, в который можно добавлять и удалять методы. Размер контейнера должен увеличиваться автоматически. Вот такое задание ,...

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

Контейнер set - C++
Есть текст на агл. языке. Используя контейнер set нужно упорядочить слова этого текста в алфавитном порядке. Вот то, что я сделал: ...

Контейнер с направлениями - C++
Речь о следующем - пусть есть множество векторов (3 числа Double). Надо добавлять в контейнер только вектора одного направления, то есть...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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