Я пытаюсь обновить ключ во вложенной карте, если он существует, или вставить его, если его нет. Я пытаюсь использовать итератор с lower_bound, чтобы сделать этот процесс эффективным.
std::unordered_map<std::string, std::unordered_map<std::string, std::string>> maps;
cache::iterator iter(maps[command[1]].lower_bound(command[2]));
if (iter == maps[command[1]].end() || command[2] < iter->first) {
maps[command[1]].insert(iter, std::make_pair(command[2], command[3]));
} else {
iter->second = command[3];
}
Я получаю следующую ошибку во время компиляции:
no member named 'lower_bound' in 'std::unordered_map<std::basic_string<char>, std::basic_string<char>, std::hash<std::string>, std::equal_to<std::basic_string<char> >, std::allocator<std::pair<const std::basic_string<char>, std::basic_string<char> > > >'