c++的map解法 利用迭代器寻找相同的元素,然后与其数值合并
#include<iostream> #include<math.h> #include<map> using namespace std; int main() { int num=0,i=0; pair<int,int>p; cin>>num; map<int,int> m; for(i=0;i<num;i++) { cin>>p.first; cin>>p.second;//输入放到对组中 map<int, int>::iterator pos=m.find(p.first);//返回迭代器(m指针) if(pos!=m.end()) //找到重复元素 { pos->second+=p.second; //合并 } else //没有找到重复元素 { m.insert(p); } } for(map<int, int>::iterator it=m.begin();it != m.end();it++) { cout<<it->first<<' '<<it->second<<endl; } return 0; }