Вставка узла в другой std::map в C++
Пустой словарь принимает узел через перегрузку
insert, которая принимает
node_type&&.
После успешной вставки исходный узел
опустошается: повторно им пользоваться
нельзя. Тип приемника должен совпадать с
типом источника - те же std::map с
одинаковыми параметрами шаблона.
Запишем два словаря, извлечем пару из одного и вставим узел во второй:
#include <map>
std::map<std::string, int> from = {{"a", 1}, {"b", 2}};
std::map<std::string, int> to = {{"c", 3}};
auto node = from.extract("a");
to.insert(std::move(node));
std::cout << to["a"] << "\n";
std::cout << from.size() << "\n";
Извлеките узел с ключом из короткого словаря и вставьте его в пустой словарь того же типа. Выведите значение по этому ключу в приемнике.