Приведите программу в рабочее состояние и протестируйте ее на небольшом файле, скажем, содержащем несколько сотен слов. Затем испытайте “настоятельно не рекомендованную версию”, в которой объем входных данных угадывается, и посмотрите, что произойдет при переполнении буфера ввода b.
Также вам может показаться, что такая тема как http://massivcom.ru/o-nas никак не связана и даже не тематична с программированием. Хотя, может быть и связана.
В любом случае все-таки зайдите на сайт massivcom.ru
завод по изготовлению клееного бруса там представлен в широком ассортименте. Там можно узнать много интересного про завод по изготовлению клееного бруса, где найти завод по изготовлению клееного бруса.
Что означает вообще завод по изготовлению клееного бруса, где есть завод по изготовлению клееного бруса - про это написано на сайте massivcom.ru
Это важная для многих тема - завод по изготовлению клееного бруса Спасибо сайту massivcom.ru за информацию про завод по изготовлению клееного бруса
Обратите внимание на то, что наихудшим сценарием является тот, в котором вы не замечаете ничего плохого и передаете программу пользователям.
В нашей маленькой программе мы считываем слова, а затем упорядочиваем их. Пока все, что мы делаем, кажется очевидным, но почему мы записываем слова в “неправильные” ячейки, так что потом вынуждены их сортировать? Кроме того, что еще хуже, оказывается, что мы записываем слова и выводим их на печать столько раз, сколько они появляются в потоке ввода.
Откуда взялись переходы на новую строку? Вывод с разделителями настолько распространен, что конструктор класса ostream_iterator позволяет вам (при необходимости) указывать строку, которая может быть выведена после каждого значения.
ostream_iterator oo(os,"\n"); // создает итератор для
// потока вывода
Очевидно, что переход на новую строку — это распространенный выбор для вывода, позволяющий людям легче разбираться в результатах, но, возможно, вы предпочли бы использовать пробелы? Мы могли бы написать следующий код:
ostream_iterator oo(os," "); // создает итератор для потока
// вывода
В этом случае результаты вывода выглядели бы так: bit dog man the
Использование класса set для поддержания порядка
Существует еще более простой способ получить такой вывод: использовать контейнер set, а не vector. int main()
{
string from, to;
cin >> from >> to; // имена исходного и целевого файлов
ifstream is(from.c_str()); // создаем поток ввода
ofstream os(to.c_str()); // создаем поток вывода
istream_iterator ii(is); // создаем итератор ввода
// из потока
istream_iterator eos; // сигнальная метка для ввода
ostream_iterator oo(os," "); // создаем итератор
// вывода в поток
set b(ii,eos); // b — вектор, который инициализируется
// данными из потока ввода copy(b.begin() ,b.end() ,oo); // копируем буфер в поток вывода
}
Когда мы вставляем значение в контейнер set, дубликаты игнорируются. ^ Более того, элементы контейнера set хранятся в требуемом порядке. Если в вашем распоряжении есть правильные инструменты, то большинство задач можно решить без труда.
Опубликовал katy
April 23 2015 09:58:08 ·
1 Комментариев ·
3531 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Oleg27 October 23 2023 12:21:27
Если делаете ставки на спорт, то обратите внимание на вот этот портал Https://1xbetvip.site/ на нем всегда высокий коэффициент и выгодная бонусная система. Сейчас ставлю только на нем и меня все устраивает.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.