将相同的键添加到低序映射

Add Same Key To Underordered Map

本文关键字:映射 添加      更新时间:2023-10-16

我有这样的数据;

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

我如何进行此合并(我不确定这是真词与否(操作?

诀窍是使用+=而不是=. 首次使用

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}}