|
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
|
Контейнер hash_map17.06.2013, 02:12. Показов 13435. Ответов 55
Метки нет (Все метки)
Здорова!
Нужно создать контейнер hash_map это тот же контейнер как и map, только он в разы иногда раз в 10-20 быстрее осуществляет поиск элементов по ключу чем стандартный контейнер map, поэтому если нужен быстрый поиск, то советуют использовать свой hash_map. В общем ребятки какой будет алгоритм создания? Я видел внутреннее представление этого контейнера, так там внутри просто два вектора, один с объектами, а второй с указателями. Интересно как же он работает или по какому алгоритму его строить? Это задачка из книги Страуструпа. Нужно потом будет еще создать hash_set, hash_multiset или я точно не помню еще какието.
0
|
|
| 17.06.2013, 02:12 | |
|
Ответы с готовыми решениями:
55
Контейнер на пободия hash_map. Hash_map unordered_map <hash_map> is deprecated and will be REMOVED |
| 19.06.2013, 14:20 | |
|
0
|
|
|
|
|||
| 19.06.2013, 22:35 | |||
Просто интересно - Страуструп в книге не объясняет за счет чего достигается такой прирост в скорости? В std::map доступ вроде как тоже через функцию хеширования.Добавлено через 8 минут
0
|
|||
|
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
|
| 19.06.2013, 23:02 [ТС] | |
|
Kastaneda, Да а я думаю отличие в том что map это дерево, а vector это указатель и возможно поиск в дереве более затратный чем в списке. Хз. Я сам не сильно понял за счет чего производительность возрастает. Мне б щас хотябы запустить рабочую версию.
Да и вообще там написано что этот hash_map это просто в учебных целях нужно создать, а так на практике советует использовать коммерческий версии, либо версии в свободном доступе. Добавлено через 4 минуты Я хочу в учебных целях и для остальных деревьев посоздавать hash_multimap, hash_set и hash_multiset, вточь точ такие как их стд товарищи. Там дальше задачки будут, но без этого hash_map я остальные не смогу понять как делать, придется разбираться никуда не дется.
0
|
|
|
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
||
| 19.06.2013, 23:07 [ТС] | ||
|
Kastaneda, Так ты тоже Страуструпа читаешь щас и на том месте где я?
Добавлено через 2 минуты
0
|
||
|
|
|||||||||||||||
| 19.06.2013, 23:15 | |||||||||||||||
|
пример кода
Пример с msdn
Интуитивно могу предположить, что она испльзуется для определения "куда засунуть элемент в дереве". За подробностями можно обратиться в исходники map'а, но мне уже неохото)
0
|
|||||||||||||||
|
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
|||||||||||||||||||||
| 20.06.2013, 00:09 [ТС] | |||||||||||||||||||||
|
Ладно хватит флудить
я тут с unery_function разобрался продолжим дальше разбираться с примерам, будем исправлять ошибки.Файл hash_map.h:
:
1>------ Построение начато: проект: test, Конфигурация: Debug Win32 ------ 1> main.cpp 1>main.obj : error LNK2005: "public: unsigned int __thiscall Hash<char>::operator()(char const &)const " (??R?$Hash@D@@QBEIABD@Z) уже определен в hash_map.obj 1>main.obj : error LNK2005: "public: unsigned int __thiscall Hash<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >::operator()(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)const " (??R?$Hash@V?$basic_string@DU?$char_trai ts@D@std@@V?$allocator@D@2@@std@@@@QBEIA BV?$basic_string@DU?$char_traits@D@std@@ V?$allocator@D@2@@std@@@Z) уже определен в hash_map.obj 1>C:\test\test\Debug\test.exe : fatal error LNK1169: обнаружен многократно определенный символ - один или более ========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ========== Отетa от часть кода делает ошибку:
Добавлено через 22 минуты Как мне правильно без ошибок сделать специализацию шаблона??????
0
|
|||||||||||||||||||||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 20.06.2013, 00:12 | |
|
ninja2, В .cpp файл унести специализацию.
1
|
|
|
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
|
| 20.06.2013, 00:16 [ТС] | |
|
ForEveR, Как оно неожиданно заработало.
0
|
|
|
415 / 411 / 95
Регистрация: 06.10.2011
Сообщений: 832
|
|||||||||||||
| 20.06.2013, 00:25 | |||||||||||||
2
|
|||||||||||||
|
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
||||||||||||||||
| 20.06.2013, 11:59 [ТС] | ||||||||||||||||
|
Здорова!
Снова вылезла непонятная ошибка От файл hash_map.cpp:
1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: int & __thiscall hash_map<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,int,struct Hash<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,struct equal_to<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<struct std: air<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,int> > >::operator[](class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??A?$hash_map@V?$basic_string@DU?$char_ traits@D@std@@V?$allocator@D@2@@std@@HU? $Hash@V?$basic_string@DU?$char_traits@D@ std@@V?$allocator@D@2@@std@@@@U?$equal_t o@V?$basic_string@DU?$char_traits@D@std@ @V?$allocator@D@2@@std@@@@V?$allocator@U ?$pair@$$CBV?$basic_string@DU?$char_trai ts@D@std@@V?$allocator@D@2@@std@@H@std@@ @2@@@QAEAAHABV?$basic_string@DU?$char_tr aits@D@std@@V?$allocator@D@2@@std@@@Z) в функции _main1>C:\test\test\Debug\test.exe : fatal error LNK1120: 1 неразрешенных внешних элементов ========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ========== Если я закомментирую определение функции operator[] в файле hash_map.cpp и определю ее в классе hash_map то этой ошибки нету. Наверно как то шаблон функции operator[]() ее определение как то не правильно определено?????
0
|
||||||||||||||||
|
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
||
| 20.06.2013, 12:12 [ТС] | ||
|
0
|
||
|
|
||
| 20.06.2013, 12:45 | ||
|
Не по теме:
Добавлено через 12 минут
0
|
||
| 20.06.2013, 12:47 | |||
|
Не по теме: Kastaneda, Всецело верно.
0
|
|||
| 20.06.2013, 12:48 | |||||||
|
Не по теме:
Выбрали красно-черное потому, что оно является чем-то средним между BST и AVL.
0
|
|||||||
| 20.06.2013, 12:50 | |
|
Не по теме: Olivеr, libstdc++ не является стандартом, просто реализация, не более того.
0
|
|
| 20.06.2013, 12:51 | |
|
0
|
|
| 20.06.2013, 12:51 | |
|
Hash_Map Error (C2338) Stdext::hash_map и std::map Ошибка <hash_map> при выполнении программы Чем отличается map и hash_map в плюсах? контейнер Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия 6. Питон реализация энилоджиковской модели, картинка про Центральную часть будущей модели
anaschu 26.06.2026
Етить. ИИ мне на основе моего старого файла R создал вот эту вот хмерь на пайтоне.
Это уже новая модель, модель сукцессии грибной.
потоки фосфора, азота. Углерода.
5 видов организмов.
Я даже. . .
|
Как замкнутый ядерный цикл решит проблему недостатки фосфора? Био миграция фосфора со дна океана
anaschu 26.06.2026
Биологический лифт: Концепция подъема фосфора со дна океана с помощью ЗЯТЦ
Предлагаю на обсуждение альтернативу тяжелому промышленному бурению океанического дна. Вместо сложной инженерии мы можем. . .
|
сукцессия 5
anaschu 26.06.2026
ПЛАН РАЗРАБОТКИ математической модели сукцессии микоризных систем
Переход AM → EcM (Endo + ErM) · Шумилов А. С. · ИФХиБПП РАН · Пущино · 2026
. . .
|
сукцессия 4
anaschu 25.06.2026
Более детализированный план разработки
План доработки модели динамики микоризных симбиозов (EcM с гистерезисом)
Цель: Реализовать логику переключения между эрикоидным (ErM) и эктомикоризным. . .
|
|
сукцессия 3
anaschu 25.06.2026
Примерный план работ по модели
|
сукцессия 2
anaschu 25.06.2026
параметризировочная калибровочная таблица будущей модели
|
Многофункциональное здание: как одно здание порождает конфликты требований, которые никто не планировал (мат мет мод 29)
anaschu 23.06.2026
Многофункциональное здание:
как одно здание порождает конфликты требований,
которые никто не планировал
Материалы для обсуждения с МГСУ · 2026
Рисунки внутри приложенного ворд файла.
Что за. . .
|
28. Конкретное развертывание плана номер 1 из поста номер 27
anaschu 22.06.2026
Можно ли из модели получить конкретные строительные требования?
Честно — напрямую из текущей модели такие ответы не получить. Но цепочка логики есть, и она не такая длинная.
Где разрыв
. . .
|