Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.01.2013, 23:31   #1
RI_TY
Новичок
Джуниор
 
Регистрация: 14.01.2013
Сообщений: 1
Восклицание Требуются пояснения по коду

Есть код, но я не понимаю смысла, прокомментируйте пожалуйста..
Код:
#include "stdafx.h"
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
#include <map>
 
int main()
{
    setlocale(LC_ALL, "rus");
	std::string text;
    std::string str;
 
    std::ifstream fin("input.txt");
 
    while (std::getline(fin, str))
        text += ' ' + str;
 
    fin.close();
 
    std::istringstream istr(text);
 
    std::map< std::string, size_t > freq_dict;
    std::string word;
 
    while (istr >> word)
        ++freq_dict[word];
 
    for (std::map< std::string, size_t >::const_iterator it = freq_dict.begin();
         it != freq_dict.end();
         ++it)
         std::cout << it->first << " : " << it->second << std::endl;
  system("pause");
    return 0;
}

Последний раз редактировалось Stilet; 14.01.2013 в 23:47.
RI_TY вне форума Ответить с цитированием
Старый 15.01.2013, 14:30   #2
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

считываем текст с файла в поток, считываем с потока слова и толкаем их в мап, при это считаем для каждого слова число вхождений.

Код:
++freq_dict[word];
это может работать, но, я думаю, это опасный код, т.к. не инициализируется счетчик слов в мапе (кто его нулем инициализировал?).

затем, содержимое словаря выводится на экран.

stringstream можно было не использовать, сразу читать слова с файла. Для этого удали везде где встречается stringstream и вот тут:
while (istr >> word)
++freq_dict[word];
istr замени на fin.
rrrFer вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
VB. Пояснения к коду. Roll_Ru Помощь студентам 0 03.06.2012 12:09
Пояснения строк кода Misha305 Общие вопросы C/C++ 3 28.12.2011 21:28
Пояснения к коду калькулятора Lioness Помощь студентам 3 29.05.2011 14:45
пояснения задания world12_tk Помощь студентам 14 10.10.2009 18:55