华为机试 合并表记录

题目描述
数据表记录包含表索引和数值(int范围的正整数),请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。

解题思路:
利用哈希表
错误点:
对以下这种语法不熟悉,Begin 和end后面有括号 而first 和 second后面没有
for(auto it=m.begin();it!=m.end();it++){
cout<<it->first<<’ '<<it->second<<endl;
}

#include<iostream>
#include<map>
using namespace std;
int main(){
    int n;
    cin>>n;
    map<int,int> m;
    for(int i=0;i<n;i++){
        int k,v;
        cin>>k>>v;
        if(m.find(k)==m.end())
            m[k] = v;
        else{
            m[k] = m[k]+v;
        }
    }
    for(auto it=m.begin();it!=m.end();it++){
        cout<<it->first<<' '<<it->second<<endl;
    }
}
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页