我正在寻找一种将多键贴图“压缩”为法线贴图的方法。我的 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/