题目描述
数据表记录包含表索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。
输入描述
先输入键值对的个数
然后输入成对的index和value值,以空格隔开
输出描述
输出合并后的键值对(多行)
输入例子
4
0 1
0 2
1 2
3 4
输出例子
0 3
1 2
3 4
代码
#include <iostream>
#include <map>
using namespace std;
int main() {
int n;//输入键值对的个数
int key, value;
map <int, int> arr;//定义一个空map
cin >> n;
while (n--) {
cin >> key >> value;
if (!arr[key])//空
arr[key] = value;
else//关键字已存在,值累加
arr[key] += value;
}
for (auto &w : arr) {
cout << w.first << " " << w.second << endl;
}
system("pause");
return 0;
}
注释
1.题目中参数含有两个,表索引和数值,另外要求按key值升序输出,非常适合使用map关联容器。