在 C++ 中删除大型多重映射中的重复项的最佳方法是什么?比如我有一个multimap,key <1,4> 和它的值为9 出现了两次,如何快速摆脱它?谢谢
...
<1,2> --> 3
<1,3> --> 7
<1,4> --> 9
<1,4> --> 9
...
我希望它成为
...
<1,2> --> 3
<1,3> --> 7
<1,4> --> 9
...
最佳答案
一种需要 O(n) 时间的方法是将原始 map 复制到新 map 。例如,
multimap<T,U> original_map;
multimap<T,U> new_map;
while (original_map.size() > 0)
{
auto element = *(original_map.begin());
new_map.insert(make_pair(element.first,element.second));
original_map.erase(element.first);
}
注意:这是假设重复条目的标准是仅具有相同键的条目。
关于c++ - 删除 multimap 中重复项的有效方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22189269/