РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
264 of 815 menu

Метод insert_or_assign

Метод insert_or_assign класса map вставляет новый элемент в контейнер, если переданного ключа в нём ещё нет, либо заменяет значение существующего элемента, если такой ключ уже присутствует. В первом параметре мы передаём ключ, а во втором - значение, которое нужно вставить или присвоить. Метод возвращает пару pair, первый элемент которой является итератором на вставленный или обновлённый элемент, а второй - флагом bool, который равен true, если элемент был вставлен, и false, если значение было заменено.

Синтаксис

map.insert_or_assign(key, value)

Пример

Давайте создадим отображение и вставим в него новый элемент с ключом 1, а затем проверим результат:

#include <iostream> #include <map> using namespace std; int main() { map<int, string> m; auto res = m.insert_or_assign(1, "abcde"); cout << res.first->first << " " << res.first->second << " " << res.second << endl; return 0; }

Результат выполнения кода:

"1 abcde 1"

Пример

Теперь давайте попробуем присвоить новое значение уже существующему ключу 1 и посмотрим, что вернёт метод:

#include <iostream> #include <map> using namespace std; int main() { map<int, string> m; m.insert_or_assign(1, "abcde"); auto res = m.insert_or_assign(1, "12345"); cout << res.first->first << " " << res.first->second << " " << res.second << endl; return 0; }

Результат выполнения кода:

1 12345 0

Как видите, значение было заменено, а второй элемент пары равен false, что говорит о том, что вставки не произошло.

Пример

Давайте переберём все элементы отображения после нескольких вызовов метода:

#include <iostream> #include <map> using namespace std; int main() { map<int, string> m; m.insert_or_assign(1, "abcde"); m.insert_or_assign(2, "12345"); m.insert_or_assign(1, "12345"); for (auto &el : m) { cout << el.first << " " << el.second << endl; } return 0; }

Результат выполнения кода:

1 12345 2 12345

Смотрите также

  • класс map,
    который представляет собой отображение
  • метод insert,
    который вставляет элемент в отображение
  • метод emplace,
    который конструирует элемент прямо в контейнере
  • метод at,
    который возвращает значение по ключу
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить