Чтобы получить значение multimap
, вам нужно использовать его имя.
Поэтому, если у вас есть мультикарта с именем myMap
, вы можете получить ее значение с помощью выражения:
myMap
Как только у вас есть его значение, вы можете скопировать его в другую мультикарту или вызвать функции-члены на нем, чтобы разложить его значение на меньшие логические подзначения.
Для доступа к определенному диапазонусопоставленные значения, которые соответствуют данному ключу (в данном примере называемому myKey
), вы можете использовать:
myMap.equal_range(myKey)
Это оценивается как std::pair
из iterator
s (или const_iterators
, если *)1018 * - это const
), которые разграничивают диапазон пар ключ-значение с ключами, эквивалентными myKey
.
Например (предположим, что myMap - это карта от T1 до T2, где T1 иT2 не являются зависимыми типами):
typedef std::multimap<T1, T2>::iterator iter;
for (std::pair<iter, iter> range(myMap.equal_range(myKey));
range.first != range.second;
++range.first)
{
//In each iteration range.first will refer to a different object
//In each case, range.first->first will be equivalent to myKey
//and range.first->second will be a value that range.first->first maps to.
}