Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <map>
- #include <string>
- #include <vector>
- #include <algorithm>
- using namespace std;
- template <typename Term>
- map<Term, int> ComputeTermFreqs(const vector<Term>& terms) {
- map<Term, int> term_freqs;
- for (const Term& term : terms) {
- ++term_freqs[term];
- }
- return term_freqs;
- }
- pair<string, int> FindMaxFreqAnimal(const vector<pair<string, int>>& animals) {
- // верните животного с максимальной частотой
- //sort(begin(animals), end(animals), [](const Term& lhs, const Term& rhs){return ComputeTermFreqs(lhs)})
- /*vector<map<Term, int>> result;
- for (const auto& animal : animals){
- result.push_back(ComputeTermFreqs(animal));
- }
- sort(begin(result), end(result), [](const auto& lhs, const auto& rhs){
- if(lhs.second == rhs.second){
- return lhs.first.second < rhs.first.second;
- }
- return lhs.second > rhs.second;
- });
- return result.first;*/
- int max_value = 0;
- map<pair<string, int>, int> helper = ComputeTermFreqs(animals);
- pair<string, int> itog;
- /*sort(animals.begin(), animals.end(), [] (const auto& lhs, const auto& rhs){
- return lhs.first > rhs.first;});*/
- for (const auto& [animal, key] : helper){
- if (key>max_value) {
- max_value=key;
- itog = animal;
- }
- }
- return itog;
- }
- /*vector{<Олень, 5>, 10>, <Енот, 2>, 6>, <Аллигатор, 3>, 10>}
- Аллигатор, 3 - 10
- Олень, 5 - 10
- Енот, 2 - 6*/
- int main() {
- const vector<pair<string, int>> animals = {
- {"Murka"s, 5}, // 5-летняя Мурка
- {"Belka"s, 6}, // 6-летняя Белка
- {"Murka"s, 7}, // 7-летняя Мурка не та же, что 5-летняя!
- {"Murka"s, 5}, // Снова 5-летняя Мурка
- {"Belka"s, 6}, // Снова 6-летняя Белка
- };
- const pair<string, int> max_freq_animal = FindMaxFreqAnimal(animals);
- cout << max_freq_animal.first << " "s << max_freq_animal.second << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment