C++容器map的key相同,如何合并对应的values

例如若干学生有学号,成绩,课程三个属性学号N成绩T课程L1090语文1191语文1290数学1092数学.........剩下的学生课程就不多例举了现在整个mapmap<... 例如若干学生有学号,成绩,课程三个属性
学号N 成绩T 课程L
10 90 语文
11 91 语文
12 90 数学
10 92 数学
... ... ...

剩下的学生课程就不多例举了
现在整个map
map<int16,int64> map1;
map1.insert(map<int16,int64>::value_type(10,90));
map1.insert(map<int16,int64>::value_type(11,91));
map1.insert(map<int16,int64>::value_type(12,90));
map1.insert(map<int16,int64>::value_type(10,92));
...
然后我想讲两个学号为10的成绩合并成182,变成
map<int16,int64>::value_type(10,182);
...就像为某个班级的学生计算总分一样,输入学生的学号和每课成绩,自动计算出每个学生的总分,形成新的数据。
该怎么做??
展开
 我来答
tattackor
2015-10-27 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:877万
展开全部
1、如果重复添加的话,hashmap会自动覆盖key一样的数据,保证一个key对应一个value
也就是说,只要把一个map2里的数据按照key一个一个都加到map1里去就行了,但是这样会破坏map1如果是想保持原来的不变,可以先新建一个空的hashmap,把map1和map2的数据都加进去就可以了
2、例如:
HashMap map3 = new HashMap();
for (Object key : map1.keySet())
map3.put(key, map1.get(key));
for (Object key : map2.keySet())
map3.put(key, map2.get(key));
//可以根据具体的类型加上泛型模板
kosl90
2011-09-13 · TA获得超过440个赞
知道小有建树答主
回答量:213
采纳率:0%
帮助的人:229万
展开全部
使用map1[key] += values;应该可以,你试试。如果不存在则会新建,存在就加上数据。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式