题解 | #合并表记录# C++ map解法,map还不熟练,代码很冗余
合并表记录
http://www.nowcoder.com/practice/de044e89123f4a7482bd2b214a685201
#include<iostream> #include<map> #include<set> using namespace std; int main() { map<int,int> m; pair<int,int> p; int n,a,b; cin>>n; while(cin>>a>>b) { int flag=0; p.first=a; p.second=b; if(m.empty()) //如果map为空,直接插入 { m.insert(p); continue; } for(auto &x:m) //遍历map,如果key一样则value相加 { if(x.first==p.first) { x.second+=p.second; flag++;//处理过,标志位置1 break; } } if(!flag)//如果flag为0,则说明前面没有相同key的,这里直接插入 { m.insert(p); } } for(auto x:m) { cout<<x.first<<" "<<x.second<<endl; } }