Словарная реализация в C / C ++ (Обновление информации) - PullRequest
0 голосов
/ 13 января 2009

Есть ли у кого-нибудь информация или пример того, как смонтировать эквивалент словаря (VB6) в C или C ++?
Эта реализация используется для передачи в качестве параметра, называемого DLL VB6.

Мое намерение - создать словарь в C (win32, используя VARIANT / ARRAYs и т. Д.) И передать его для вызова VB. Поэтому я должен научиться создавать эту структуру данных.

Танки.

Ответы [ 5 ]

9 голосов
/ 13 января 2009

Как насчет карты ?

6 голосов
/ 13 января 2009

Следующая версия C ++ будет иметь unordered_map<> (очевидно, они думали, что ее вызов hash_map будет конфликтовать со слишком многими независимыми реализациями), что будет контейнером на основе хеша.

Он был добавлен в Boost и, вероятно, будет в TR1. Как всегда, если ваша система разработки не поддерживает новые стандартные функции, я рекомендую Boost.

5 голосов
/ 13 января 2009

Словарь основан на хэше, карта - это контейнер на основе дерева. Я думаю, что tr1 добавил некоторый хеш-контейнер, но на многих платформах вы можете использовать hash_map

3 голосов
/ 13 января 2009

Вы имеете в виду помимо std::map в заголовке map ?

2 голосов
/ 13 января 2009

Хеш-таблица? Вы можете найти несколько существующих пакетов хеш-таблиц в C, например:

Вы также можете использовать пакет, созданный для постоянного хранения, поскольку у некоторых есть возможность сохранить все в памяти для ускорения.

  • HamsterDB"в базе данных памяти", опция HAM_IN_MEMORY_DB
  • BerkeleyDB , может быть путем отключения буферизации или указания отсутствия файла («Базы данных в памяти, которые никогда не предназначались для сохранения на диске, можно создать, установив для параметра файла значение NULL» ".)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...