Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
ДОМАШНЕЕ ЗАДАНИЕ № 1
по курсу «Основы программирования на C++»
Потоки ввода-вывода и стандартная библиотека шаблонов (STL)
Для каждой части предоставить меню, позволяющее продемонстрировать основные возможности программы.
Часть 1. Последовательные контейнеры
Разработать следующий набор функций, используя в качестве последовательных контейнеров вектор, двустороннюю очередь и список.
1. Функция createData(), создающая текстовый файл с данными в виде 100 случайно сгенерированных целых чисел в диапазоне от –50 до 50. Предусмотреть следующие версии данной функции:
1.1. Функция, выгружающая данные с использованием файловых потоков.
1.2. Функция, использующая алгоритм generate для инициализации вспомогательного контейнера и алгоритм copy для вывода его содержимого в файл с использованием потоковых итераторов.
2. Шаблонная функция loadData(), загружающая данные в последовательный контейнер данного типа. Предусмотреть следующие версии данной функции:
2.1. Функция, загружающая данные с использованием файловых потоков.
2.2. Функция, загружающая данные с использованием потоковых итераторов и алгоритма copy.
3. Функция modify(), модифицирующая загруженные данные в соответствии с вариантами:
Предусмотреть следующие версии функции Modify():
3.1. Как шаблонная функция, принимающая последовательный контейнер данного типа. Должна добавлять в конец контейнера результата сумму и среднее арифметическое элементов контейнера по абсолютной величине.
3.2. Как функция, принимающая аргументы-итераторы.
3.3. Как функция, использующая алгоритм for_each(). Конкретную операцию передавать в виде функционального объекта или лямбда-функции.
3.4. Как функция, использующая алгоритм transform() и потоковые итераторы для одновременного считывая данных из файла, их преобразования и вывода в файл результата.
4. Функция outputResult() для вывода контейнера-результата. Предусмотреть следующие версии данной функции:
4.1. Функция, выгружающая данные с использованием файловых потоков.
4.2. Функция, использующая алгоритм copy для вывода контейнера в файл с использованием потоковых итераторов.
Часть 2. Ассоциативные контейнеры
Выполнить следующие задания, реализовав индексный массив в виде ассоциативного контейнера-отображения.
Основные требования
1. Реализация шаблонных функций не должна зависеть от конкретных типов данных, т.е. не допускается явно указывать конкретный тип (например, тип элементов контейнеров). Нужно использовать типы контейнеров (valuе_type и др.).
2. Работа с файлами осуществляется на основе потоковых классов C++.