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 に答える