查找对的匹配键范围

时间:2018-06-18 23:25:57

标签: c++ dictionary

我们说我有一张地图:

std::map<std::pair<string,int>,int> map_example;

如何在地图中找到具有以下属性的键的所有元素:对中的字符串为&#34; A&#34;并且int在5到10之间,包括5和10。或者,将地图制作成以下情况会更好吗?

std::map<string,std::map<int,int> map_example2;

1 个答案:

答案 0 :(得分:0)

result变量会为您提供map,其中包含map_example符合您条件的所有元素:

decltype(map_example) result;
for (const auto& item : map_example) {
    const auto& key = item.first;
    if (key.first == "A" && key.second >= 5 && key.second <= 10)
        result.insert(item);
}

迭代整个map并检查每个元素是否满足条件,如果是,则将元素插入result map