【发布时间】:2015-07-03 19:42:27
【问题描述】:
我希望在遍历地图时增加一对的双倍。
地图是这样创建的:
typedef pair<string,string> Name;
map<Name,double> paidEmploy;
在我从 cin 获取所有内容并将其添加到地图后,如果名称已经在地图中(显然),它将不会添加对象。如果插入失败,我会遍历地图以查找已插入名称的位置。然后我想访问地图的双倍以增加下一个数量。我如何访问它?
这是我目前正在做的事情:
map<Name,double> paidEmploy;
string line, fn, ln, date;
double paid;
while(getline(cin, line)){
istringstream(line) >> date >> fn >> ln >> paid; // assume all lines are correct
if(paidEmploy.insert(pair<pair<string,string>,double>(pair<string,string>(fn,ln),paid)).second == false){
for(auto it = paidEmploy.begin(); it != paidEmploy.end(); it++){
if(it->second.first == fn && it->second.second == ln){
it->third += paid;
break;
}
}
}
}
【问题讨论】:
标签: c++ c++11 dictionary iterator