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;
} 
京公网安备 11010502036488号