fork(1) download
  1. #include <iostream>
  2. #include <vector>
  3. #include <map>
  4. #include <list>
  5.  
  6. template<typename T>
  7. typename T::value_type most_frequent_element(T const& v)
  8. {
  9. std::map<typename T::value_type, int> frequencyMap;
  10. int maxFrequency = 0;
  11. typename T::value_type mostFrequentElement{};
  12. for (auto&& x : v)
  13. {
  14. int f = ++frequencyMap[x];
  15. if (f > maxFrequency)
  16. {
  17. maxFrequency = f;
  18. mostFrequentElement = x;
  19. }
  20. }
  21.  
  22. return mostFrequentElement;
  23. }
  24.  
  25. #include <iostream>
  26.  
  27. int main()
  28. {
  29. std::vector<int> v { 1, 3, 5, 6, 6, 2, 3, 4, 3, 5 };
  30. std::cout << most_frequent_element(v) << std::endl;
  31.  
  32. std::list<int> l { 6, 3, 5, 6, 6, 2, 3, 4, 3, 6 };
  33. std::cout << most_frequent_element(l) << std::endl;
  34. }
  35.  
Success #stdin #stdout 0s 3032KB
stdin
Standard input is empty
stdout
3
6