Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
jobster
0 / 0 / 0
Регистрация: 11.03.2014
Сообщений: 45
#1

Итераторы: зачем используется оператор инкремента для потоков вывода? - C++

10.07.2014, 11:53. Просмотров 284. Ответов 3
Метки нет (Все метки)

Хотел уточнить зачем используется оператор инкремента для потоков вывода:

C++
1
2
3
4
5
6
7
 void main(void)
{
    std::ostream_iterator<int> output(cout, " ");
    
    *output++ = 123;
    *output++ = 4;
}
Если не использовать оператор инкремента, то вывод получается точно такой же.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.07.2014, 11:53     Итераторы: зачем используется оператор инкремента для потоков вывода?
Посмотрите здесь:

Зачем нужны итераторы? - C++
Практическое использование мне понятно - с их помощью обходят контейнеры и т.д и т.п.Но почему не реализовать нужные методы,перегрузить...

Перегрузка потоков и итераторы - C++
Здравствуйте! Не могу найти проблему... помогите пожалуйста, вот код: #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;list&gt; ...

Оператор перегрузки инкремента - C++
Добрый день. Мне нужна оценка кода. Правильно - ли я все сделал? Подскажите пожалуйста. если что не так. /*Создать класс с перегрузкой...

Какой препроцессор используется для подключения стандартной библиотеки ввода-вывода? - C++
Какой препроцессор используется для подключения стандартной библиотеки ввода-вывода? 1) include 2) iostream 3) define 4) io.sys

Каким образом работает побитовое или и для чего этот оператор используется в заданном фрагменте кода? - C++
Добрый день, не сможете объяснить, каким образом работает побитовый оператор или в данном цикле и для чего он нужен? Заранее благодарен за...

Оператор вывода для иерархии - C++
Добрый вечер всем, Имеется класс Person, от него отнаследован класс Student. Есть 2 оператора чтения из потока std::istream&amp;...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
John Prick
774 / 707 / 129
Регистрация: 27.07.2012
Сообщений: 2,026
Завершенные тесты: 3
10.07.2014, 12:08     Итераторы: зачем используется оператор инкремента для потоков вывода? #2
Потому что этот итератор может использоваться в обобщённых алгоритмах. Они ничего не знают об итераторе, который им передаётся, и используют инкремент итератора после каждой итерации.
jobster
0 / 0 / 0
Регистрация: 11.03.2014
Сообщений: 45
10.07.2014, 12:19  [ТС]     Итераторы: зачем используется оператор инкремента для потоков вывода? #3
Вы можете привести пример к вашему комментарию, в котором есть различия при использовании и не использовании оператора инкремента для потоков вывода.

Добавлено через 57 секунд
Или в данном случае оператор инкремента используется как заглушка?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.07.2014, 12:29     Итераторы: зачем используется оператор инкремента для потоков вывода?
Еще ссылки по теме:

Итераторы и итерация. Оператор >>. Простой текстовый редактор Страуструпа - C++
Добрый день! Есть код Страуструпа из Принципы и практика использования С++ Глава 20, параграф 6. Код описывает простой текстовой...

Не получается перегрузить оператор вывода для дружественной функции - C++
Не могу понять почему пытаясь перегрузить оператор вывода использую дружественную функцию, я не могу передать объект по значению, это...

Как перегрузить оператор вывода в поток для вектора? - C++
Стало интересно реализовать подобный функционал, и конечно же ничего не работает. При этом коде: template&lt;class T&gt; ...

Оператор cin. Задать ширину для вывода нескольких значений - C++
Добрый вечер, уважаемые программисты. Проблема заключается в следующем: При выводе таблицы столбцы получаются неровными. Вот код: ...

Переписать программу так, чтобы для вывода на экран каждого операнда использовался отдельный оператор - C++
Читаю учебник C++, не могу разобраться с задачей, прошу помощи. Код: #include &lt;iostream&gt; int main() { std::cout &lt;&lt; &quot;Programma...

Перегружаемый оператор присваивания, зачем нужен амперсанд? - C++
Вот программа: #include &lt;iostream&gt; using namespace std; class alpha { private: int data; public: alpha(){}


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
John Prick
774 / 707 / 129
Регистрация: 27.07.2012
Сообщений: 2,026
Завершенные тесты: 3
10.07.2014, 12:29     Итераторы: зачем используется оператор инкремента для потоков вывода? #4
Вот примерный код обобщённого алгоритма copy:
C++
1
2
3
4
5
6
template <class InputIterator, class OutputIterator>
OutputIterator copy(InputIterator First, InputIterator Last, OutputIterator Out)
{
    for ( ; First != Last; )
        *Out++ = *First++
}
Как видите, для вывода используется конструкци *Out++.
В этот алгоритм может быть передан как итератор вывода в поток, так любой другой итератор, соответствующий требованиям к итератору вывода:
C++
1
2
3
4
int a[4] = { 1, 2, 3, 4 };
int b[4];
copy(a, a + 4, b);
copy(a, a + 4, ostream_iterator<int>(cout, " "));
Yandex
Объявления
10.07.2014, 12:29     Итераторы: зачем используется оператор инкремента для потоков вывода?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru