Вопрос

Как утверждает вопрос ... я не понимаю, multisetс / multimapс.

Итак, какова цель?

Это было полезно?

Решение

Некоторые случаи использования:

MultiMap

  • С Zip-кодом в качестве ключа, все люди, которые имеют этот почтовый индекс
  • С учетом идентификатора в качестве ключа все открытые заказы этого человека / аккаунта
  • Словарь, с нами ключевое слово Различные объяснения

многословный

По сути, на карте с ключом и целым числом.

  • Инвентаризация магазина, все продукты имеют свой ключ, и сумма все еще доступна, является значением
  • Накопленные данные продаж магазина, каждый раз, когда продукт продается, удостоверение личности продукта, добавленные в мультисете, что увеличивает проданную сумму

Другие советы

Одним из примеров, где MultiMAP будет полезен, если у вас была ситуация, когда в большинстве случаев ключи уникальны, но иногда они не являются.

Например, если вы создали класс кеша, который использовал хеш в качестве ключа. Большую часть времени два разных объекта не будут такими же хэш, поэтому ключи будут уникальными. Но возможно, что вы получите Chahh Collisions для разных объектов, поэтому вы хотите, чтобы MultiMAP охватить эту ситуацию.

Другой пример будет любой неожиданный индекс (например, в базе данных).

Что касается многосея - я думаю, что это было бы менее полезно. Только то, о чем я могу думать, будет использовать его как своего рода автоматически отсортированного списка.

MultiSet или MultiMap просто для ситуаций, когда может быть более одного из конкретного элемента. Например, скажем, вы хотите создать индекс для книги. Вы быскатили через текст, выбросьте все действительно обычные бессмысленные слова («А», «Ан», «То» и т. Д.), а затем составляют список всех остальных, а также место в книге, где каждый произошел.

Довольно несколько слов появятся на более чем на одной странице, в этом случае у вас будет несколько записей записей от одного слова на разные страницы. Один из способов справиться с MultiMap от слов к номерам страниц.

http://www.cplusplus.com/reference/stl/multimap/

Карты - это своего рода ассоциативные контейнеры, которые хранят элементы, образованные комбинацией ключевого значения и сопоставленного значения, очень похожего на карте контейнеров, но позволяют различным элементам иметь одно и то же ключевое значение.

Это своего рода реестр, где элементы могут поделиться ключом. Вы можете подумать о компаниях и сотрудниках. Уличный адрес - ключ, и сотрудники являются ценностями.

Вот что Википедия говорит об использовании:

  • В системе регистрации студентов, где учащиеся могут быть зачислены в несколько классов одновременно, может быть ассоциация для каждой зачисления студента в курсе, где ключ является идентификатором студента, а значение является идентификатором курса. Если студент зачислен на три курса, будут три ассоциации, содержащие один и тот же ключ.
  • Индекс книги может сообщать о любом количестве ссылок на заданный термин индекса, и, таким образом, может быть закодирован в виде MultiMap от Условия индекса к любому количеству контрольных мест

Используйте MultiMap, где бы вы ни захотите использовать вид дерева структуры.

Наиболее важное преимущество использования многосекрета по вектору / списку (или любому другому контейнеру) - это сложность работы находки. Среднее количество времени Сложность для MultiSet IS (logn) и unuorded_multiset - это o (1). То же самое верно для MultiMap и ordered_multimap.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top