Описание тега unordered-multimap

Ассоциативный контейнер, содержащий пары элементов "ключ-значение", в которых несколько значений могут быть сопоставлены одному и тому же ключу. Происходит от структуры данных unordered_map и имеет аналогичную сложность в операциях.
2 ответа

Столкновения в unordered_multimap при итерации по корзине через local_it

В приведенном ниже коде у меня есть несколько строк (последовательностей ДНК), которые я храню в векторе. у меня есть struct, read_tag что я использую для идентификации каждой строки; read_tag.read_id это строковый идентификатор. Я беру 30 символьны…
1 ответ

Печать нескольких значений конкретного ключа в std::unordered_multimap в C++

Я пытаюсь напечатать все значения, связанные с конкретным ключом, в unordered_multiset в C++, но, к сожалению, когда я запускаю приведенный ниже код, я получаю два разных вывода в Visual studio и онлайн-компиляторе http://cpp.sh/. Visual Studio выда…
1 ответ

Должны ли элементы с дублирующимися ключами в unordered_multimap храниться в порядке их вставки?

В одной книге упоминается, что для std::unordered_multimap: Порядок элементов не определен. Единственная гарантия состоит в том, что дубликаты, которые возможны из-за использования мультимножества, группируются в порядке их вставки. Но из вывода при…
0 ответов

Какой лучший способ создать хэш-таблицу с определенным размером и пользовательской хэш-функцией в C++, используя STL

В программном проекте мне нужно создать хеш-таблицу с определенным размером и пользовательской хеш-функцией. Какой лучший способ сделать это в C++ с использованием STL? Из моего исследования 2 являются возможными решениями моей проблемы. 1) Unordere…
25 ноя '18 в 22:55
1 ответ

Цикл по equle_range в повышении::unordered_multimap

Я пытаюсь узнать, как перебирать значения, возвращаемые boost::unordered_multimap, которые имеют одинаковые ключи. Итак, я сделал это, boost::unordered_multimap<string, string> sample; В котором я, может быть, <"one", "1">, <"one", "1…
14 ноя '16 в 10:22
1 ответ

Гарантии уникальности ключа в std::unordered_multimap

Я задавался вопросом об уникальности ключевого объекта внутри std::unordered_multimap при работе с итерацией. Я попытаюсь объяснить суть: мне нужно связать некоторые данные с типом ключа на карте, эти данные не следует рассматривать в Hash или же Ke…
09 июн '16 в 14:52
1 ответ

Ошибка: static_assert не удалось "Этот хэш работает только для типов перечисления" для unordered_multimap

Я пытаюсь вставить в unordered_multimap<pair<int, int>, int> вот так: unordered_multimap<pair<int, int>, int> tree; auto firstPair=make_pair(firstNumber, secondNumber); tree.insert(make_pair(firstPair, 0)); Тем не менее, комп…
18 сен '16 в 04:06
2 ответа

Случайное unordered_multimap с использованием std::generate

Я пытаюсь сгенерировать случайный unordered_multimap размером 10, используя следующий код: #include <algorithm> #include <unordered_map> #include <cstdlib> int main() { auto m = std::unordered_multimap<int, int>(10); std::gen…
30 янв '19 в 13:02
2 ответа

Какое использование локального итератора для неупорядоченных контейнеров STL?

В §23.2.7 неупорядоченные ассоциативные контейнеры [unord.req] стандартной таблицы C++ 91 описывают дополнительные требования, которым должен соответствовать неупорядоченный ассоциативный контейнер STL. В этой таблице стандарт диктует, что STL неупо…
2 ответа

Хранение нескольких типов в контейнере члена класса

Я читал это Q/A здесь, и так как мой вопрос похож, но отличается, я хотел бы знать, как сделать следующее: Допустим, у меня есть базовый не наследуемый не шаблонный класс Storage, class Storage {}; Я хотел бы, чтобы в этом классе был один контейнер …
1 ответ

Как получить unordered_multimap из unordered_multimaps

Я практиковался в unordered_multimaps и столкнулся с проблемой наличия unordered_multimap, содержащего другое unordered_multimap. Компилятор выдает ошибку, говоря, что стандарт C++ не предоставляет хэш этого типа. Я предполагаю, что мне нужно написа…
21 авг '19 в 13:45
0 ответов

Почему в C++11 unordered_multimap так много корзин?

У меня есть unordered_multimap, и я вставляю элементы с одним и тем же ключом много раз, поэтому некоторые из них должны находиться в одном ведре. Вставляю ровно 10000 элементов. Но по какой-то причине, когда я печатаю bucket_count(), это 12983. Для…
24 окт '19 в 14:54
1 ответ

Найти функцию в STL C++ для неупорядоченной мульти-карты?

Функция поиска возвращает только один указатель на повторяющиеся элементы в multimap. Как мы можем вернуть указатель на другой повторяющийся элемент в multimap.
19 окт '19 в 20:30
1 ответ

Является ли лучший способ получить среднее значение ключа unordered_multimap?

Я ищу получить все значение одного ключа в моем unordered_multimap, который на самом деле складывает int и значение, представляющее время выполнения в наносекундах. Мне нужно получить все значение, чтобы заменить несколько ключей одним ключом со сре…
1 ответ

Эффективный способ итерации по каждому ключу ровно один раз в unordered_multimap

У меня есть std::unordered_multimap и я хочу повторить каждый ключ ровно один раз. Сейчас я копирую все ключи в std::set. Мне это кажется довольно неэффективным, и мне интересно, есть ли более разумный способ сделать это. Если бы это былstd::multise…
04 янв '20 в 12:53
1 ответ

Проблема с определением хеш-функции для пользовательского типа в unordered_multimap в MacOS

Итак, я хочу использовать собственный тип (здесь SWrapper) в качестве ключевого типа для unordered_multimap. Я определил хэш-класс, производный от стандартной хеш-функции для строк, и включил хеш-класс в тип мульти-карты. Ниже показан код, воспроизв…
03 апр '20 в 03:04
0 ответов

Можно ли поменять местами все ключевые значения как пары во всей unordered_multimap в с ++11?

У меня есть unordered_multimap с парами в качестве ключей. Я хотел бы поменять местами значения в парах на всей карте. Пример: {пара<1,2>, 3} -> {пара<2,1>, 3} Я хотел бы перебрать контейнер и изменить все ключи. Дубликаты могут возникать, поэтому и…
04 июн '20 в 21:21
1 ответ

Эффективный узел extract() + insert() в unordered_map

Используя функции узла C++17, я могу изменить ключ, не перераспределяя узел. В моем конкретном случае использования я заменяю ключ на равный, поэтому я хотел бы использовать insert()-with-hint, чтобы избежать полного второго поиска, и это отлично ра…
2 ответа

Есть ли способ преобразовать local_iterator в const_iterator или итератор?

Как мы можем изменить unordered_multimap :: local_iterator на unordered_multimap :: iterator или unordered_multimap :: const_iterator? Мне нужно изменение, потому что мы не можем стирать элементы с помощью local_iterator, а стирание можно выполнить …
22 авг '21 в 08:43
2 ответа

Стирание итератора Unordered_mutlimap

У меня есть следующий код #include &lt;iostream&gt; #include &lt;unordered_map&gt; using namespace std; int main() { unordered_multimap&lt;int, int&gt; uomap; typedef unordered_multimap&lt;int, int&gt;::iterator iter; uomap.insert({ 2, 30 }); uomap.…