如何计算多映射中重复对的数量

How to count number of duplicate pairs in multimap

本文关键字:映射 何计算 计算      更新时间:2023-10-16

如何在整数对的多映射中计算重复对(具有相同键和值(的数量?

例如,我的多映射包含对{(6,2(、(6,2。我尝试过使用find((和count((等方法,但都没有用。任何帮助都将不胜感激!

一种常见的方法是使用std::set。这不能包含重复的数据。

我们将尝试使用其范围构造函数将所有数据放入std::set。使用CTAD使写作更容易。

然后我们比较了std::multimapstd::set的大小,并得到了所有重复的数量。

所以它可以归结为一个非常简单的程序。请参阅:

#include <iostream>
#include <map>
#include <set>
int main()
{
// Source data
std::multimap<int, int> mm = { {6, 2}, {6, 3}, {6, 2}, {6, 4} };
// Use range constructor and CTAD to put the data into a set
std::set s(mm.begin(), mm.end());
// Show result
std::cout << "Number of duplicates: " << mm.size() - s.size() << "n";
return 0;
}

如果有不同的要求,请反馈,我将创建一个额外的解决方案。