2013-01-01 15 views
6

C'è un modo più semplice per verificare se una chiamata std::unordered_map::insert è riuscita a scrivere questo enorme blocco di codice?forma più semplice di 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 
} 

risposta

12

ne dite solo:

if(!_tileTypes.insert(std::make_pair(val1, vla2)).second) { 
    // insert did not succeed 
} 
11
if (!_tileTypes.insert(pair).second) 

?

In alternativa, typedef può essere utile per riordinare questo tipo di cose.

Inoltre, se si sta utilizzando C++ 11, quindi è possibile utilizzare la parola chiave auto di dedurre il tipo:

+0

E se avete bisogno di accesso per '.first' dopo aver controllato' .second', puoi usare 'auto' per semplificare il tipo di valore di ritorno lungo. –

Problemi correlati