合并表记录
来源:互联网 发布:excel设置数据标签 编辑:程序博客网 时间:2024/06/06 03:08
题目描述
数据表记录包含表索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。
输入描述:
先输入键值对的个数然后输入成对的index和value值,以空格隔开
输出描述:
输出合并后的键值对(多行)
输入例子:
40 10 21 23 4
输出例子:
0 31 23 4
解题思路
根据题意,用STL中的关联容器map来存储数据表比较方便。一方面,map中的元素正是键值对,与数据表的记录相吻合;另一方面,map中元素的键不能重复,并且元素是按照按照键的升序排列的,这与题目的要求是吻合的。
首先创建一个名为list的map容器,每输入一个键值对(key,value),首先应检查list中是否已存在元素,其键与输入的键相同。如果有,则将输入的值加到该元素的值上;否则将该键值对存入list。需要注意的是,可以直接用list[key]+=value来实现以上过程,如果list中不存在键为key的元素,该语句将键值对插入list。
另外,在map中查找和插入一个元素的时间复杂度都是对数的。
代码
#include <iostream>#include <map>using namespace std;int main(){ int count = 0; //键值对的个数 cin >> count; map<int, int> list; //数据表 int index = 0, value = 0; for (int i = 0; i < count; ++i) { cin >> index >> value; list[index] += value; //如果index已存在,将值进行合并;如果不存在,插入键值对 } auto it = list.begin(); while (it != list.end()) //输出合并后的键值对 { cout << it->first << " " << it->second << endl; it++; } return 0;}
阅读全文
0 0
- 合并表记录
- 合并表记录
- 合并表记录
- 合并表记录
- 合并表记录
- 合并表记录
- 合并表记录
- 合并表记录
- 009-合并表记录
- 合并表记录
- 合并表记录
- 合并表记录
- 合并表记录
- 合并表记录
- 合并表记录
- 合并表记录
- 合并表记录
- 合并表记录
- “函数”一词的来历
- POJ 1423 Big Number 笔记
- 关于 java swing 使用按钮关闭窗口
- 一步步学习kotlin for android(二)创建kotlin类
- C++中定义动态数组
- 合并表记录
- TabLayout+ViewPager+Fragment实现懒加载
- xml解析方式
- ThreadLocal
- 互联网协会:加密(APP加密)是世界经济增长的关键
- How Data Is Stored In CEPH Cluster
- Java 使用 poi 导出excel 表格
- matlab 常用机器学习算法的实现
- easyui combobox实现搜索下拉补全功能