简单的更改导致make:错误1

时间:2010-06-10 21:51:12

标签: c++ makefile compilation

有这个:

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

将其更改为:

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

第一个编译好。第二个给了我一个错误1.我可以整天来回 - 我看不出任何问题。有什么想法吗?

1 个答案:

答案 0 :(得分:3)

std::map::insert()的重载会返回std::pair<iterator, bool>。你无法将其与零进行比较。

bool元素告诉您是否插入了新元素;如果你想与之比较,你可以简单地使用:

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