华为机试题(2017/04/01)
来源:互联网 发布:最全p2p网络理财产品 编辑:程序博客网 时间:2024/06/08 11:21
题目描述
数据表记录包含表索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。
输入描述:
先输入键值对的个数然后输入成对的index和value值,以空格隔开
输出描述:
输出合并后的键值对(多行)
输入例子:
40 10 21 23 4输出例子:
0 31 23 4C++代码
#include<iostream>#include<map>using namespace std;int main(){ map<int, int> key_val; int index_, val_, count_, i=0; cin >>count_; while(i++ < count_) { cin >> index_ >> val_; pair<map<int, int>::iterator,bool> ret = key_val.insert({index_, val_}); if(!ret.second) { key_val[index_] += val_; } } map<int, int>::iterator ptr = key_val.begin(); while(ptr != key_val.end()) { cout << ptr->first << " " << ptr->second <<endl; ++ptr; } return 0;}(1)向map中添加元素;
pair<map<int, int>::iterator,bool> ret = key_val.insert({index_, val_});
insert返回值(pair类型):一个迭代器,一个bool值;其中bool值指出插入元素是否成功,如果成功(即原map中不含有该元素),bool值为true; 如果失败(即原map中含有该元素),则insert什么也不做,bool值为false(所以,可以根据此特性判断原map中是否含有该元素)。
(2) map的遍历。利用了迭代器。
0 0
- 华为机试题(2017/04/01)
- 华为机试题01(2015部分)
- 2017华为实习机试题(java)
- 华为机试题(2)
- 华为机试题(3)
- 华为机试题(4)
- 华为机试题(5)
- 华为机试题(6)
- 华为机试题(7)
- 华为机试题 (1)
- 华为机试题(2)
- 华为机试题(3)
- 华为机试题(4)
- 华为机试题(5)
- 华为机试题(6)
- 华为机试题(7)
- 华为机试题(二)
- 华为2016机试题目01
- hdu 2516 取石子游戏(斐波那契博弈)
- 【模拟试题】技能树 树形DP
- 常用的几种排序算
- 将html文件统一改成jsp文件
- 八皇后问题(递归+回溯法)
- 华为机试题(2017/04/01)
- bzoj4807車
- 5.多个线程访问共享对象和数据的方式
- 安卓工程师入门——ListView
- 盘点各编程语言中有趣的开源项目!
- nyist737 石子合并
- PX4应用实例3:px4_simple_app
- JavaScript操作表格和选择框
- linux输入yum后提示: -bash: /usr/bin/yum: No such file or directory的解决方案