У меня есть объект std::map
.
std::map<std::string, std::string> m;
m.insert({ "abcd", "foo" });
m.insert({ "1234", "bar" });
, и я хочу получить и удалить первый элемент, например:
auto iter = m.begin();
auto [key, value] = std::move(*iter);
m.erase(iter);
do_something_with(key, value);
Считается ли это безопасным? (Переход от итератора должен сделать ключ пустой строкой, что сделает m
недопустимой картой.)