#include <iostream>
#include <map>
int main() {
std::map<int, std::string> mp = {{1, "a"}, {2, "ab"}, {3, "abc"}, {4, "abcd"}, {5, "abcde"}};
std::map<int, std::string> filteredMap;
auto filterCondition = [](const std::pair<int, std::string>& item) {
return item.first % 2 == 0; // filter when key is even
};
for (const auto& item : mp) {
if (filterCondition(item)) {
filteredMap[item.first] = item.second;
}
}
for (const auto& item : filteredMap) {
std::cout << item.first << ": " << item.second << std::endl;
}
}
/*
run:
2: ab
4: abcd
*/