6

std::unordered_map::insert有没有比编写这个庞大的代码块更简单的方法来检查调用是否成功?

std::pair< T1, T2 > pair(val1, val2);
std::pair< std::unordered_map< T1, T2 >::const_iterator, bool> ret =
 _tileTypes.insert(pair);
if(!ret.second) {
    // insert did not succeed
}
4

2 回答 2

12

怎么样:

if(!_tileTypes.insert(std::make_pair(val1, vla2)).second) {
    // insert did not succeed
}
于 2013-01-01T19:54:35.820 回答
11
if (!_tileTypes.insert(pair).second)

?

或者,typedef 可以用来整理这类事情。

此外,如果您使用的是 C++11,那么您可以使用auto关键字来推断类型:

auto ret = _tileTypes.insert(pair);
于 2013-01-01T19:54:22.580 回答