假设我们有一张初始化地图:
const std::map<int, std::string> map = {
{ 0, "A" },
{ 1, "B" },
{ 2, "A" },
{ 3, "A" },
{ 4, "C" },
{ 5, "A" },
// ...
};
在1到1000个值的情况下,检索与值"A"
关联的所有键的最快方法是什么?
答案 0 :(得分:3)
您可以使用Boost.Bimap。 Boost.Bimap是一个用于C ++的双向映射库。使用Boost.Bimap,您可以创建关联容器,其中两种类型都可以用作键。
答案 1 :(得分:1)
如果std::map
的值不包含任何索引,则只能执行以下操作:
#include <iostream>
#include <map>
#include <string>
int main()
{
const std::map<int, std::string> map = {
{ 0, "A" },
{ 1, "B" },
{ 2, "A" },
{ 3, "A" },
{ 4, "C" },
{ 5, "A" },
};
for (const auto& pair : map) {
if (pair.second == "A") {
std::cout << '{' << pair.first << ", " << pair.second << "}\n";
}
}
}