Open alexey-malov opened 9 years ago
Имена переменных должны использовать lowerCamelCase
В заголовочных файлах `
` писать не следует Как и using namespace
string word = "";
не надо присваивать пустую строку. конструктор по умолчанию и так сконструирует пустую строку
if ((symbol < 65 || symbol > 122) || (symbol > 90 && symbol < 97))
в программе не должно быть магических констант
???
symbol -> ascii код для проверки вхождения только букв, которую взял отсюда http://cppstudio.com/post/276/ то есть от A...Z и от a...z Мне как-то по другому сделать проверку, или эта не годится?
Что такое 65 или 122? Используйте вместо них символьные литералы
map <string, int>::iterator it = Dictionary.find(word);
if (it != Dictionary.end())
{
Dictionary[word]++;
}
else
{
Dictionary[word] = 1;
}
прочитайте про оператор [] класса map, как он работает в отсутствие значения с указанным ключом Вышеописанный код можно записать в виде: ++Dictionary[word] И отдавайте предпочтение префиксной форме инкремента и декремента
int symbol;
почему используется тип int для хранения символов строки, а не char?
???
symbol -> ascii код для проверки вхождения только букв http://www.cyberforum.ru/cpp-beginners/thread97052.html
Для хранение кодов символов ascii-таблицы достаточно типа char Для хранения (практически всего) юинкода - wchar_t
word = word + line[count];
более эффективно здесь использовать метод append либо push_back
int count = 0;
для индексации элементов контейнеров vector и string следует использовать тип size_t. Иначе на 64 битных платформаз программа будет работать некорректно
char* ShowDictionary(map <string, int> Dictionary)
{
int Value = 0;
string Key;
char* Result;
map<string, int>::iterator it;
map<string, int>::iterator itEnd = Dictionary.end();
it = Dictionary.begin();
while (it != itEnd)
{
if (Value < (*it).second)
{
Value = (*it).second;
Key = (*it).first;
}
++it;
}
Result = new char[Key.length() + 1];
strcpy(Result, Key.c_str());
return Result;
}
утечка памяти. Память выделенная при помощи new нигде не освобождается
за исполнение 0,2 за срок: 0.8
Все равно сатанизм. Сдайте очно на практическом занятии
Не исправлены предупреждения компилятора