可能的重复:
检查 std::map 中是否存在值 - C++ https://stackoverflow.com/questions/535317/checking-value-exist-in-a-stdmap-c
如何遍历 stl 地图/向量/列表/等? https://stackoverflow.com/questions/4207346/how-to-traverse-a-stl-map-vector-list-etc
Hello,
是否可以在不知道键的情况下在 std::map 中搜索特定值?我知道我可以迭代整个映射并比较值,但是可以使用标准算法中的函数吗?
嗯,你可以使用std::find_if
:
int main()
{
typedef std::map<int, std::string> my_map;
my_map m;
m.insert(std::make_pair(0, "zero"));
m.insert(std::make_pair(1, "one"));
m.insert(std::make_pair(2, "two"));
const std::string s("one");
const my_map::const_iterator it = std::find_if(
m.begin(), m.end(), boost::bind(&my_map::value_type::second, _1) == s
);
}
但这比手工制作的循环稍微好一点:它仍然O(n)
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)