C ++ делает Hash of Arrays - PullRequest
2 голосов
/ 03 июля 2011

У меня проблема с созданием хэша массивов.Мне нужна система Single Key - Multi Data:

multimap <Type, vector<type> > var;

Но как я могу добавить элементы в вектор?

Пример: key = 3;

Теперь мне нужнодобавить некоторые элементы в вектор, ключ которого равен 3.

Создание временного вектора не является ответом, потому что я не знаю, когда мне нужно ввести элемент в вектор с текущим ключом.

извини, понимаю мою проблему.мне нужна структура быстрого доступа, которая будет работать с ~ 50 000 слов длиной ~ 20 каждое.и мне нужно что-то вроде дерева.Также есть вопрос: насколько быстры STL-структуры, такие как vector, map, multimap и другие?

Ответы [ 2 ]

2 голосов
/ 03 июля 2011

Что не так с std::map <KeyType, std::vector<SomeType> > или какой-либо другой коллекцией в качестве типа значения?Это дает вам контроль над тем, как работать со сбором значений.Мультикарта для меня выглядит как низкоуровневая форма std::map <KeyType, std::list<SomeType> >, но без гибкости списка.

1 голос
/ 03 июля 2011

Чтобы найти ответ на свой вопрос, вы можете посмотреть слайды в пункте 6. на этом сайте https://ece.uwaterloo.ca/~ece250/Lectures/Slides/

Надеюсь, это поможет!

...