c++ - 将 multi_key 映射转换为连接多个键的 "normal"映射

标签 c++ maps duplicates

我正在寻找一种将多键贴图“压缩”为法线贴图的方法。我的 multimap 看起来像这样:

Key                 v a l u e s 
<string>            <string>

140,1,08,2500       1456 
140,1,10,3040       1456 
.............       ....
.............       ....
140,1,08,2500       8g   
140,1,13,3040       8g   
.............       ....

第一个和倒数第二个键是相同的。我的目标是合并这两行(以及所有其他重复的 key 对),结果是:

140,1,08,2500       14568g

属于被合并的原始两个键的值。现在,我可以编写一些不错的循环并迭代、复制和删除内容等等,但我想知道是否有人知道完成此操作的聪明的、甚至可能是快速的方法。

最佳答案

保持简单...

map<string, string> new_map;

for(auto it = mmap.begin(), end = mmap.end(); it != end; ++it)
{
  new_map[it->first].append(it->second);
}

为什么要让它变得更复杂?

关于c++ - 将 multi_key 映射转换为连接多个键的 "normal"映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7964101/

相关文章:

javascript - 合并对象使用 javascript 中的加法保留它的值

c++ - c++中运算符的地址

maps - Google map API V3 - DirectionsRendererOptions 和 InfoWindow 中的自定义内容

java - 使用 Java 进行云中的重复数据删除

r - 在 r 中添加美国和加拿大之间的粗体边界。

php - 为 PDF 动态创建 map

javascript - 如何修复重复键错误收藏的 friend

c++ - Process.ExitCode 属性返回的退出代码不正确

c++ - 树莓派 g++ : Ultrasonic sensor not working. ..!

c++ - C++ 新手,使用 "=="的/字符串相等性问题