map<std::string, std::int>如何筛选出map数据中string中含有某些字符串的数据
时间: 2024-10-22 20:27:26 浏览: 9
在`std::map<std::string, std::int>`这样的关联容器中,如果你想筛选出那些键(即字符串)中包含特定子串的数据,你可以通过迭代器遍历整个映射,并使用`std::string`的成员函数如`find()`或者`substr()`检查每个键。这里是一个简单的示例:
```cpp
#include <iostream>
#include <map>
// 假设你有一个map实例,名为myMap
void filter_map(const std::map<std::string, int>& myMap, const std::string& substr) {
for (const auto& pair : myMap) {
if (pair.first.find(substr) != std::string::npos) { // 如果键中包含substr
std::cout << "Key: " << pair.first << ", Value: " << pair.second << "\n";
}
}
}
int main() {
std::map<std::string, int> myMap = {{"apple", 1}, {"banana", 2}, {"cherry", 3}};
std::string substr = "an"; // 想查找以"an"开头的键
filter_map(myMap, substr);
return 0;
}
```
这个例子会打印出所有键中含有`substr`的键值对。
阅读全文