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

Ассоциативный массив "ключ - список" - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.75
Damaks
18 / 10 / 1
Регистрация: 02.09.2010
Сообщений: 235
20.02.2011, 22:04     Ассоциативный массив "ключ - список" #1
С помощью stl нужно создать ассоциативный массив "ключ" = "список"
Ассоциативный массив - это unordered_map само собой
Нужно чтобы ключу соответствовал список, это vector, т.к. скорость работы очень критична, и искаться по нему значения будут гораздо чаще, чем добавляться (порядка 5 тысяч в секунду)
Контейнер map я могу сделать, и работать с ним.
Подскажите как можно и как лучше реализовать схему "ключ" = "список"?
Спасибо.

Добавлено через 28 минут
Я нашел статью _http://lib.rus.ec/b/191841/read где написано о нескольких методах реализации, но не понятно какой выбрать...
Соотношение вставок значений/поиск получается где-то 1/3
Я правильно понимаю что в отсортированый вектор или map операция вставки по нагрузке на порядок больше чем операция поиска?
С другой стороны если использовать несортированный - то поиск будет идти дольше..., хотя вроде ненадолго
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.02.2011, 22:04     Ассоциативный массив "ключ - список"
Посмотрите здесь:

C++ Контейнерный класс типа "Список" без использования STL
C++ АТД список. Заменить меньшую часть списка символом "#"
Решение уравнения ("при попытке сопоставить список аргументов") C++
C++ Однонаправленный список типа "Очередь". Поменять элементы местами
C++ Класс "Телефонная станция". Массив символов и массив строк - в чем разница?
Механизм хранения "ключ-значение" C++
Двумерный массив: Добавить методы "ДайЗначениеЯчейки", "УстановиЗначениеЯчейки" C++
Массив "hotel", в который пользователь добавляет "жильцов" C++
Написать конструктор для пользовательского класса "Двусвязный список" C++
C++ Реализовать удаление элемента из пользовательского класса "Двунаправленный список"
Запись таблицы частот из файла в список или ассоциативный массив C++
C++ Дан массив из "n" элементов.Выполнить добавление элементов "k" в конец массива

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Union
 Аватар для Union
17 / 17 / 2
Регистрация: 16.08.2010
Сообщений: 252
21.02.2011, 00:16     Ассоциативный массив "ключ - список" #2
Не вижу контейнера, подходящего для данной задачи. Единственное что похоже - multimap. multimap - то же, что и map, но допускающий повторяющиеся ключи, а не значений; Т.е. с ним не получится...
Возможно можно сделать как-то так:
std::unordered_map<std::string, std::vector<std::string>> massiv1;
если найдете решение, напишите, самому интересно
Yandex
Объявления
21.02.2011, 00:16     Ассоциативный массив "ключ - список"
Ответ Создать тему
Опции темы

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