Одним из распространенных подходов является использование std::set
. Это не может содержать повторяющиеся данные.
Мы попытаемся поместить все данные в std::set
, используя его конструктор диапазона. Использование CTAD облегчает написание.
Затем мы сравниваем размер std::multimap
с размером std::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;
}
Если есть другие требования, пожалуйста, оставьте отзыв, и я создам дополнительное решение.