考虑一下我有这个:
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++中,您将需要一个中间迭代器。