Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety_na_voprosy_k_ekzamenu_po_C.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
241.66 Кб
Скачать

Потоковые итераторы

Потоковые итераторы введены для того, чтобы стандартные алгоритмы могли непосредственно использовать потоки ввода/вывода.

Определено два шаблона классов потоковых итераторов: итератор входного потока

istream_iterator и итератор выходного потока ostream_iterator.

Итератор входного потока читает элементы из потока, для которого он был создан, после чего к ним можно обращаться обычным для итератора образом, то есть через операцию разадресации.

Например, для чтения целого числа из файла с именем temp можно использовать следующий фрагмент:

istream in('temp");

istream_iterator<int> i(in);

int buf = * 1;

Итератор выходного потока записывает с помощью операции « элементы в выходной поток, для которого он был сконструирован. Если вторым аргументом конструктора была строка символов, она выводится после каждого выводимого значения:

ostream_iterator<int> os(cout, "кг");

*os = 100; // Будет выведено: 100 кг

++0S; *os = 2; // Будет выведено: 2 кг

44. Функциональные объекты. Арифметические функциональные объекты

Функциональным объектом называется класс, в котором определена операция вызова функции.

Стандартная библиотека предоставляет множество функциональных объектов, необходимых для ее эффективного использования и расширения. Они описаны в заголовочном файле <functional>. Среди этих объектов можно выделить объекты, возвращающие значения типа bool. Такие объекты называются предикатами. Предикатом называется также и обычная функция, возвращающая bool.

В качестве базовых классов, которые вводят стандартные имена для типов аргументов, в библиотеке определены шаблоны унарной и бинарной функции.

Стандартная библиотека содержит описание нескольких типов адаптеров:

  • связыватели для использования функционального объекта с двумя аргументами как объекта с одним аргументом;

  • отрицатели для инверсии значения предиката;

  • адаптеры указателей на функцию;

  • адаптеры методов для использования методов в алгоритмах.

В стандартной библиотеке определены шаблоны функциональных объектов для всех арифметических операций, определенных в языке C++:

Имя

Тип

Результат

plus

бинарный

x+ у

minus

бинарный

x - у

multiplies

бинарный

x * у

divides

бинарный

x / у

modulus

бинарный

x % у

negate

унарный

- x

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]