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;
    
}