我有一个unordered_map,看起来像这样:
std::unordered_map<int, std::string> theMap2 = {{1,"a"}, {2,"b"}, {3,"c"}, {4,"a"}};
我想找出所有值相同的键,比如说"a"。除了明显的方法,你有什么建议吗?
std::vector<int> arrKeys;
std::string value = "a";
for (const auto& element : theMap)
if (element.second == value)
arrKeys.push_back(element.first);
copy_if
将尝试复制键-值 对。 - dyptransform_if
算法更难;最好都通过现有库来完成(例如 boost 可以方便地编写新的迭代器)。但是,您可能可以找到一个直接解决 OP 问题的库。 - dyp