merge забирает узлы из другого контейнера того же типа. Переносятся только ключи, которых еще нет в текущем словаре.">
Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpSpNdMg 170 of 696 menu
◀ ▶

Слияние словарей методом merge в C++

Метод merge забирает узлы из другого контейнера того же типа.

Переносятся только ключи, которых еще нет в текущем словаре. Если ключ уже занят, соответствующий узел остается в источнике. Копирования пар не происходит - меняются только связи дерева. То же правило действует для std::set при слиянии множеств.

Запишем два словаря с пересекающимся ключом и выведем размеры после слияния:

#include <map> std::map<std::string, int> host = {{"x", 1}, {"y", 2}}; std::map<std::string, int> guest = {{"y", 9}, {"z", 3}}; host.merge(guest); std::cout << host.size() << "\n"; std::cout << guest.size() << "\n"; std::cout << host["y"] << "\n";

Объедините два словаря из трех ключей каждый так, чтобы один общий ключ остался только в приемнике. Выведите число элементов в источнике после операции.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить