如何在C ++地图中提取具有相同前缀的记录?

时间:2014-08-15 21:41:53

标签: c++ map

现在,我只知道有几个记录具有相同的前缀" head _"在一张地图上。 如果我不知道这张地图中的确切键,我如何提取所有这些记录? 有什么想法吗?

1 个答案:

答案 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;
    }
}

上面的代码应该可行,但我承认我没有测试它。 (任何错误都应该是可以解决的)