2010-06-10 61 views
1

有了這個:簡單變化導致化妝:錯誤1

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

改成了這樣:

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

第一個編譯罰款。第二個給我一個錯誤1.我可以一整天來回 - 我看不到任何問題。有任何想法嗎?

回答

3

std::map::insert()的超載返回std::pair<iterator, bool>。你無法將其與零比較。

bool元素告訴你是否插入了新元素;如果你想比較一下,你可以簡單地使用:

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

我讀錯了命令的返回文檔。應該更仔細地看待它。謝謝。 – BSchlinker 2010-06-10 21:54:28