fork(1) download
  1. #include <iostream>
  2. #include <map>
  3. #include <string>
  4. #include <vector>
  5. #include <utility>
  6. #include <algorithm>
  7.  
  8. using namespace std;
  9.  
  10. using freqMap = map<char, int>;
  11. using freqMapElement = typename map<char, int>::value_type;
  12.  
  13. bool cmpByValue(const freqMapElement* p1, const freqMapElement* p2)
  14. {
  15. return p1->second > p2->second;
  16. }
  17.  
  18. int main()
  19. {
  20. string s = "ASDASDASD";
  21.  
  22. freqMap freq_map;
  23. for (auto c : s)
  24. {
  25. freq_map[c]++;
  26. }
  27.  
  28. vector<freqMapElement*> freq_vec;
  29. freq_vec.reserve(freq_map.size());
  30. for (auto &elem : freq_map)
  31. {
  32. freq_vec.push_back(&elem);
  33. }
  34. sort(freq_vec.begin(), freq_vec.end(), cmpByValue);
  35.  
  36. freqMapElement* top = *freq_vec.begin();
  37. cout << top->first << ' ' << top->second << endl;
  38.  
  39. return 0;
  40. }
Success #stdin #stdout 0.01s 5280KB
stdin
Standard input is empty
stdout
A 3