Вставка без замены try_emplace в C++
Метод try_emplace создает элемент только когда ключа еще нет в дереве.
Аргументы после ключа передают конструктору
значения: объект собирают в узле, а не
копируют готовый. Повторный вызов с тем же
ключом не трогает уже лежащее значение и
возвращает false во второй части пары
результата.
Запишем словарь, дважды попробуем вставить один ключ и выведем итог:
#include <map>
std::map<std::string, int> data;
auto first = data.try_emplace("id", 1);
auto second = data.try_emplace("id", 99);
std::cout << data["id"] << "\n";
std::cout << second.second << "\n";
Вставьте новый ключ методом try_emplace,
повторите вызов с другим числом и выведите
сохранившееся значение и флаг второй попытки.