我想检查是否在地图中找到了某个键,如果是,我想将它放在一个变量中以供其他用途,但问题是我不想使用迭代器。我在map类中找到了find函数,但是它返回一个迭代器,我想检查是否在map中找到了一个键,如果它返回true来获取它
谢谢
std::map::count()
如果地图包含特定的键,将通知您。如果键在地图中,那么您可以使用operator[]
来获取该值,因为知道不会添加默认值(尽管正如 ildjarn 指出的那样,需要两次搜索地图):
std::map<int, int> m;
m[0] = 1;
m[1] = 2;
if (m.count(0))
{
std::cout << "value=" << m[0] << "\n";
}
为什么find()
没有吸引力,我不清楚:
std::map<int, int>::iterator i = m.find(0);
if (i != m.end())
{
std::cout << "value=" << i->second << "\n";
}