-1

我想检查是否在地图中找到了某个键,如果是,我想将它放在一个变量中以供其他用途,但问题是我不想使用迭代器。我在map类中找到了find函数,但是它返回一个迭代器,我想检查是否在map中找到了一个键,如果它返回true来获取它

谢谢

4

1 回答 1

6

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";
}
于 2012-04-26T19:47:01.377 回答