描述
数据表记录包含表索引和数值(int范围的正整数),请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。
输入描述:
先输入键值对的个数
然后输入成对的index和value值,以空格隔开
输出描述:
输出合并后的键值对(多行)
思路一:
使用无序的哈希表,unordered_map
#include <iostream>
#include <unordered_map>
using namespace std;
int main(){
int num_size=0,key=0,value=0;
cin >> num_size;
unordered_map<int,int> data(num_size);
while(num_size--){
cin>>key;
cin>>value;
data[key] = value+data[key];
}
for(int i=0;i<data.size();i++){
if(data[i]!=0){
cout<<i<<' '<<data[i]<<endl;
}
}
}