考虑一下我有这个:

std::map<int, int> intMap;
intMap[11] = 21;
intMap[12] = 22;
intMap[13] = 23;
intMap[14] = 24;

int val = 0;

当我想查找map [11]的值(如果存在)并将其放入val时,我正在使用:
std::map<int, int>::iterator it = intMap.find(11);
if(it != intMap.end())
    val = it->second;

有没有不用迭代器就可以做到这一点的方法吗?我的意思是说,一种较短的方法。
int val = intMap[11]对我来说不是一个选项,因为它不存在,因此将11作为intMap的键添加了,这对我不感兴趣。请参阅here

最佳答案

在c++ 11中,map具有一个称为at(Key)的新方法,该方法将返回对映射值的引用,或者如果 map 上不存在Key,则抛出异常。

在c++中,您将需要一个中间迭代器。

09-06 12:51