C++ 简单更改会导致make:错误1

C++ 简单更改会导致make:错误1,c++,makefile,compilation,C++,Makefile,Compilation,我们有: rtable.insert ( pair<string,string>(destination,nhop) ); // route insertion return 0; rtable.insert(成对(目的地,nhop));//进路插入 返回0; 将其更改为: if (rtable.insert ( pair<string,string>(destination,nhop)) == 0){ return 0; } if(rtable.inser

我们有:

rtable.insert ( pair<string,string>(destination,nhop) ); // route insertion
return 0;
rtable.insert(成对(目的地,nhop));//进路插入
返回0;
将其更改为:

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

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

std::map::insert()的重载返回一个
std::pair
。你无法将其与零进行比较

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

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

我读错了返回命令的文档。我应该仔细看看。谢谢