2010-02-27 10 views
7

Sto inizializzando una mappa map<string,int> ex; in C++. Non riesco a trovare contains_key o una funzione simile in stl, quindi sto usando solo ex[inputString]++;Un assunto di valore iniziale sulla mappa in C++

Il debugger mostra l'int da inizializzare a zero correttamente, è una buona ipotesi?

risposta

7

Sì, i valori che non esistono quando si accede con operator[] sono predefiniti. Per i valori numerici, questo è 0.

Detto questo, si sta cercando il metodo count:

bool hasElement = ex.count("element"); 
+1

grazie, bene sapere che è inizializzato a zero, salva il se esiste poi inizializzare tipo! della struttura necessaria in python –

+2

@akshayubhat 'map [k]' di C++ e 'dict.setdefault (k [, d])' di Python sono simili in quanto una chiave inesistente sarà impostata su un valore predefinito, come 'map di C++. find (k) -> second' e Python 'dict [k]' simili in quanto una chiave inesistente darà un errore. Le due lingue hanno appena scelto diverse opzioni per le quali essere l'operazione "comune". – ephemient

Problemi correlati