Red Planet
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Цитата: std::map<> всегда сортирует, и сортирует всегда по ключу. Если тебе надо пересортировать std::map<>, нужен новый ключ, а это значит и новый std::map<>, т.к. функция сортировки по ключу является частью типа std::map<>, и если он меняется, меняется и тип контейнера. Ты не сможешь сменить тип уже имеющейся переменной. Если ключём являются сами данные, то их копирование в std::multiset<> решит твою задачу. | А задача была в том, чтобы проанализировать шифротекст на частоты символов и упорядочить символы по убыванию частоты. Решил создать multimap <int, string, comp>. Если можно было сделать лучше, то буду рад выслушать предложения. int - количество раз для каждого символа. string - сам символ (не char, так как каждый символ зашифрован двумя цифрами). comp - функтор для сортировки (так как нужно по убыванию). Теперь к вопросу. Шифротекст берется из текстового файла input.txt, считывается в string, потом анализируется в цикле. Результат записывается в res.txt функцией, проводившей анализ. Функция вызывается несколько раз (для букв и сочетаний из двух букв). Считывание в string text. Цитата: ifstream ifs ("input.txt", ifstream::in); string text; while (ifs.good()) ifs >> text; ifs.close(); | Запись результата. Цитата: ofstream to_res ("res.txt", ofstream::app); for (mit it=A.begin(); it!=A.end(); it++) to_res << it->second <<" - "<< it->first <<endl; | mit - синоним итератора multimap <int, string, comp>::iterator Сейчас не могу понять, как сделать так, чтобы при запуске программы текстовый файл res.txt очищался, если в нем что-то есть. Цитата: ofstream to_res ("res.txt", ofstream::app); | Записывает результаты, но перед новым запуском программы не стирает то, что есть в текстовом файле. Цитата: ofstream to_res ("res.txt", ofstream::out); | Записывает только последнее значение в цикле. Как решить проблему? | Всего записей: 215 | Зарегистр. 18-06-2009 | Отправлено: 22:14 28-03-2011 | Исправлено: Red Planet, 22:18 28-03-2011 |
|