现在,我只知道有几个记录具有相同的前缀" head _"在一张地图上。 如果我不知道这张地图中的确切键,我如何提取所有这些记录? 有什么想法吗?
答案 0 :(得分:2)
您必须遍历地图。但是,您可以通过使用等于所需前缀的密钥调用std::map::lower_bound
来有效地找到您的起点。
void extract_keys(const std::map<std::string, int>& some_map){
auto iter = some_map.lower_bound("head_");
while (iter->first.find("head_") == 0){
//do things with key, value pair
++iter;
}
}
上面的代码应该可行,但我承认我没有测试它。 (任何错误都应该是可以解决的)