Карта C++ — стирание элементов обратным вызовом

Опубликовано: 19 Февраля, 2023

Требования: Карты

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

  • Стереть по ключу
  • Стереть по положению
  • Стереть по значению
  • Стереть обратным вызовом

Что такое функции обратного вызова или функции обратного вызова?

Обратный вызов — это любой исполняемый код, который передается в качестве аргумента другому коду, который, как ожидается, вызовет (выполнит) аргумент в заданное время. Говоря простым языком, если ссылка на функцию передается другой функции в качестве аргумента для ее вызова, то она будет называться функцией обратного вызова.

Подход: перебрать все элементы карты и выполнить заданный обратный вызов для каждого элемента. Если обратный вызов возвращает true, удалите этот элемент и перейдите к следующему элементу.

Пример:

Объяснение:

  • Во-первых, мы определяем функцию с возвращаемым типом данных void, которая принимает карту <int, int> по ссылке и функцию обратного вызова.
  • Эта функция удаляет ключи, для которых функция обратного вызова возвращает значение true.
  • Затем мы определяем функцию call_back, которая возвращает true, если переданное значение нечетное, в противном случае она возвращает false.
  • После этого внутри функции main мы объявляем map<int, int>.
  • Затем мы вставляем в карту некоторые фиктивные данные.
  • Затем мы печатаем оригинальную карту, которую мы создали.
  • Теперь мы передали карту и функцию обратного вызова в функцию erase_odd.
  • Наконец, мы печатаем карту.