Карта C++ — стирание элементов обратным вызовом
Требования: Карты
Карты — это ассоциативные контейнеры, которые хранят элементы в сопоставленном виде. Каждый элемент имеет значение ключа и сопоставленное значение. Никакие два сопоставленных значения не могут иметь одинаковые значения ключа. Различные способы удаления элементов на карте:
- Стереть по ключу
- Стереть по положению
- Стереть по значению
- Стереть обратным вызовом
Что такое функции обратного вызова или функции обратного вызова?
Обратный вызов — это любой исполняемый код, который передается в качестве аргумента другому коду, который, как ожидается, вызовет (выполнит) аргумент в заданное время. Говоря простым языком, если ссылка на функцию передается другой функции в качестве аргумента для ее вызова, то она будет называться функцией обратного вызова.
Подход: перебрать все элементы карты и выполнить заданный обратный вызов для каждого элемента. Если обратный вызов возвращает true, удалите этот элемент и перейдите к следующему элементу.
Пример:
Объяснение:
- Во-первых, мы определяем функцию с возвращаемым типом данных void, которая принимает карту <int, int> по ссылке и функцию обратного вызова.
- Эта функция удаляет ключи, для которых функция обратного вызова возвращает значение true.
- Затем мы определяем функцию call_back, которая возвращает true, если переданное значение нечетное, в противном случае она возвращает false.
- После этого внутри функции main мы объявляем map<int, int>.
- Затем мы вставляем в карту некоторые фиктивные данные.
- Затем мы печатаем оригинальную карту, которую мы создали.
- Теперь мы передали карту и функцию обратного вызова в функцию erase_odd.
- Наконец, мы печатаем карту.