您的位置:首页 > 其它

华为训练题:初级——合并表记录(字典,简单题)

2015-08-14 20:23 288 查看
数据表记录包含表索引和数值。请对表索引相同的记录进行合并,合并后表记录为相同索引表的数值求和

先输入键值对的个数
然后输入成对的index和value值,以换行符隔开

输出合并后的键值对(多行)

4

0 1 0 2 1 2 3 4

0

3

1

2

3

4

思路:

用一个map字典来做,每次输入一对时count下,发现不等于1时加入,发现等于1时在它上面++value

#include<iostream>
#include<map>
using namespace std;

int main()
{
int n;
map<int,int> ma1;
cin>>n;
while(n--)
{
int key;
int value;
cin>>key;
cin>>value;

if(ma1.count(key)==1)
ma1[key]+=value;
else
ma1[key]=value;
}
for(map<int,int>::iterator i=ma1.begin();i!=ma1.end();i++)
{
cout<<i->first<<endl;
cout<<i->second<<endl;
}
system("pause");
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: