我创建了一个 multimap ,因为我有重复键。但我想做一个有效的操作,这样我就可以生成一个新的 multimap ,随后更高的键对齐。这就是我的意思:
这是我的:
key values
11 qwer
11 mfiri
21 iernr
21 ghfnfjf
43 dnvfrf
这就是我想要的
key values
11 qwer,iernr
11 mfiri,iernr
21 iernr,dnvfrf
21 ghfnfjf,dnvfrf
43 dnvfrf
我有大约 1000 万个条目,所以我正在寻找高效的东西。
上面的值“qwer,iernr”是一个字符串。
最佳答案
这里有一个简单的方法:
auto cur = map.begin();
auto next = map.upper_bound(cur->first);
for(; next != map.end(); next = map.upper_bound(cur->first))
{
for(; cur != next; ++cur)
{
cur->second += ", ";
cur->second += next->second;
}
}
...给定一个std::multimap<int, std::string> map;
但是,任何转换 10m+ 元素的操作都不会非常快。
关于C++ multimap 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14407463/