在我的C ++代码中,我通过迭代器访问地图。如有必要,请更新地图,然后将其重新分配给class变量。在继续进行的语句中,我想再次使用更新的地图值。我应该重新加载地图,刷新迭代器吗?等。地图是:

MapType tbl = device->trust();
MapType::iterator iter_trust = tbl.begin();
tbl.insert(std::pair<int, double> (node->getId().id(), 0.1));


对更新后的值执行以下操作,该怎么办?

iter_trust = tbl.find(node->getId().id());

最佳答案

MapType tbl = device->trust();
MapType::iterator iter_trust = tbl.find(node->getId().id());

if (iter_trust == tbl.end()) {
   tbl.insert(std::make_pair(node->getId().id(), 0.1));
   iter_trust = tbl.find(node->getId().id());
}
else {
   tbl[node->getId().id()] = 0.1;
}


因此,您可以确定要升级。

关于c++ - C++ MapType::iterator使用更新后的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7428055/

10-11 15:15