multimap замена operator[] для доступа к элементу

137
01 января 2020, 09:00

Судя по документации на multimap отсутствует доступ к элементам через оператор[] или at, в отличие от map. Есть ли какая замена для доступа к нужному элементу multimap?

Answer 1

Для std::map функция operator[] имеет совершенно не тот смысл, что функция operator[], например, для std::vector, std::deque или встроенный оператор [] для работы с массивами. Для std::map operator[] это упрощение операции "обновления с возможным созданием". Для объявления map<K, V> m, операция m[k] = v проверяет присутствует ли ключ k в контейнере. Если ключ отсутствует, он добавляется вместе с ассоциированным значением v. Если такой ключ уже есть, то ассоциированное с ним значение заменяется на v.

Так как в std::multimap могут содержаться повторяющиеся ключи, то непонятно на какой объект, ассоциированный с ключом, operator[] должен вернуть ссылку.

Подумайте, точно ли вам нужен именно этот контейнер.

READ ALSO
Ошибка при перегрузке операторов + и = C++

Ошибка при перегрузке операторов + и = C++

Я написал класс Vector и перегрузил для него операторы = и +Код ниже почему-то приводит к аварийному завершению, хотя и выводит правильный результат

117
Вывести данные о людях, имена которых повторяются

Вывести данные о людях, имена которых повторяются

Возникла трудность при решении такой задачи: дан массив строк, в котором записаны имена и фамилии пользователейНужно вывести пользователей...

130
Ошибки в коде С++

Ошибки в коде С++

Программа находит в строке char последовательности одинаковых символов длинной более 3 символов(кроме пробела) и закидывает эти фрагменты...

151
Как получить широту и долготу выбранной точки в Arcgis?

Как получить широту и долготу выбранной точки в Arcgis?

Я использую примерТут выводятся положения точки на экране :

134