向未排序的地图添加相同的键

问题描述 投票:0回答:1

我有这样的数据;

a - 5
b - 4
c - 3
d - 4
a - 7
b - 3

我像这样将数据插入到[[C ++中进行映射;

unordered_map<string, int> umap; umap["a"] = 5; umap["b"] = 4; umap["c"] = 3; umap["d"] = 4; umap["a"] = 7; umap["b"] = 3;

[我想在同一个键中添加值。

预期的输出;

a - 12 b - 7 c - 3 d - 4

我该如何进行合并(我不确定这是不是真的单词)操作?
c++ hash hashmap
1个回答
3
投票
诀窍是使用+=而不是=。首次使用[在地图上创建对象时

umap["a"]

然后映射值初始化为零,因此映射包含

{{"a", 0}}

然后umap["a"] += 5会给你

{{"a", 5}}

如果您随后进行了umap["a"] += 7;,则地图将具有

{{"a", 12}}

对获得的所有元素执行此操作:

unordered_map<string, int> umap; umap["a"] += 5; umap["b"] += 4; umap["c"] += 3; umap["d"] += 4; umap["a"] += 7; umap["b"] += 3;

和地图将有

{{"a", 12}, {"b", 7}, {"c", 3}, {"d", 4}}

© www.soinside.com 2019 - 2024. All rights reserved.