RattleInGlasses / ps_oop

0 stars 0 forks source link

Замечания по программе подсчета частоты встречаемости слов #8

Open alexey-malov opened 9 years ago

alexey-malov commented 9 years ago

Можно вот таким способом проверить содержимое контейнеров map на равенство:

bool MapsAreEqual(const map<string, int> & lhs, const map<string, int> & rhs)
{
    return lhs == rhs;
}

    assert(MapsAreEqual(testWords, {
        {"word", 1},
        {"красный", 1},
        {"hello", 2},
    }));
alexey-malov commented 9 years ago
        word = ToLowerCase(word);

        if (words.find(word) != words.end())
        {
            words[word]++;
        }
        else
        {
            words[word] = 1;
        }

Условие можно заменить на:

++words[word];

Лучше отдавать предпочтение прединкременту

alexey-malov commented 9 years ago
{
    string word;
    locale loc(".866");
    int ch = input.get();
    while (isspace(ch, loc) && !input.eof())
    {
        ch = input.get();
    }
    while (!isspace(ch, loc) && !input.eof())
    {
        word += ch;
        ch = input.get();
    }

    return word;
}

Почему бы не заменить на:

string word;
input >> word;

??

alexey-malov commented 9 years ago

20*0,8+10 = 26