我有这样的数据;
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
我该如何执行合并(我不确定这是不是真的单词)操作?
答案 0 :(得分: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}}