我不明白那段代码是做什么的

static TwoWayHostPair hostpair;
map <TwoWayHostPair, Traffic> mymap;
//here some map element inserted to mymap and hostpair initialized

map <TwoWayHostPair, Traffic>::iterator iter = mymap.begin();
iter = mymap.find(hostpair);
if (iter == mymap.end()) {
    iter = mymap.insert(make_pair(hostPair, Traffic())).first; //line8
}


我的问题是第8行会发生什么?我没明白。它不是应该为map<...>:iterator类型,插入之后是否保持相同类型?

最佳答案

std :: map :: insert返回std :: pair ,下面的语句是正确的。第二个布尔返回值指示插入是否发生

iter = mymap.insert(make_pair(hostPair, Traffic())).first; //line8


参见参考文献here

08-06 03:38