Advertisement
chevengur

СПРИНТ № 2 | Шаблоны функции | Урок 3: Обобщаем функцию

Oct 25th, 2023
302
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.19 KB | None | 0 0
  1. #include <iostream>
  2. #include <map>
  3. #include <string>
  4. #include <vector>
  5. using namespace std;
  6. template <typename Term>
  7. map<Term, int> ComputeTermFreqs(const vector<Term>& terms) {
  8.     map<Term, int> term_freqs;
  9.     for (const Term& term : terms) {
  10.         ++term_freqs[term];
  11.     }
  12.     return term_freqs;
  13. }
  14. pair<string, int> FindMaxFreqAnimal(const vector<pair<string, int>>& animals) {
  15.     int max_value = 0;
  16.     pair<string, int>ret_pair;
  17.     for(const auto& [term, value]: ComputeTermFreqs(animals)){
  18.         if(max_value < value){
  19.             max_value = value;
  20.             ret_pair = term;
  21.         }
  22.     }
  23.     return ret_pair;  
  24. }
  25.  
  26. int main() {
  27.     const vector<pair<string, int>> animals = {
  28.         {"Murka"s, 5},  // 5-летняя Мурка
  29.         {"Belka"s, 6},  // 6-летняя Белка
  30.         {"Murka"s, 7},  // 7-летняя Мурка не та же, что 5-летняя!
  31.         {"Murka"s, 5},  // Снова 5-летняя Мурка
  32.         {"Belka"s, 6},  // Снова 6-летняя Белка
  33.     };
  34.     const pair<string, int> max_freq_animal = FindMaxFreqAnimal(animals);
  35.     cout << max_freq_animal.first << " "s << max_freq_animal.second << endl;
  36. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement