2010-06-10 2 views
1

: Si cela avaitsimple changement dans les résultats font: Erreur 1

rtable.insert (pair<string,string>(destination,nhop)); // route insertion 
return 0; 

Changé à cela:

if (rtable.insert (pair<string,string>(destination,nhop)) == 0){ 
    return 0; 
} 

premier compile bien. Le second me donne une erreur de fabrication 1. Je peux aller et venir toute la journée - je ne vois aucun problème. Des idées?

Répondre

3

Cette surcharge de std::map::insert() renvoie un std::pair<iterator, bool>. Vous ne pouvez pas comparer cela à zéro.

Cet élément bool vous indique si un nouvel élément a été inséré; si vous voulez comparer contre cela vous pouvez simplement utiliser:

if (rtable.insert(pair<string,string>(destination,nhop)).second) 
    return 0 
+2

J'ai lu la documentation erronée pour le retour de la commande. J'aurais dû regarder plus attentivement. Merci. – BSchlinker

Questions connexes