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

Отличие istreambuf_iterator от istream_iterator - C++

Восстановить пароль Регистрация
 
BESSON_off
 Аватар для BESSON_off
3 / 0 / 1
Регистрация: 08.07.2013
Сообщений: 329
16.05.2014, 19:51     Отличие istreambuf_iterator от istream_iterator #1
Прочитал все найденные похожие темы... Протестировал все, что можно... Но отличий так найти и не смог этих двух итераторов... Оба являются адаптерами на входные потоки... Чем же они отличаются?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.05.2014, 19:51     Отличие istreambuf_iterator от istream_iterator
Посмотрите здесь:

istream_iterator C++
istream_iterator C++
istream_iterator C++
istreambuf_iterator C++
Разница межу istream_iterator и istreambuf_iterator C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Somebody
2770 / 1583 / 141
Регистрация: 03.12.2007
Сообщений: 4,139
Завершенные тесты: 1
16.05.2014, 20:18     Отличие istreambuf_iterator от istream_iterator #2
Unformatted vs formatted, как operator>> и get.
BESSON_off
 Аватар для BESSON_off
3 / 0 / 1
Регистрация: 08.07.2013
Сообщений: 329
16.05.2014, 20:37  [ТС]     Отличие istreambuf_iterator от istream_iterator #3
о каком формате речь? istreambuf обходит установки локали? флагов?
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
16.05.2014, 20:56     Отличие istreambuf_iterator от istream_iterator #4
BESSON_off, http://en.cppreference.com/w/cpp/ite...ambuf_iterator
http://en.cppreference.com/w/cpp/ite...tream_iterator

Внимательно посмотри на объявление. В шаблоне istreambuf_iterator отсутствует class T

Добавлено через 3 минуты
Читаем первую строку после объявления.

std::istreambuf_iterator is a single-pass input iterator that reads successive characters from the std::basic_streambuf object for which it was constructed.
std::istream_iterator is a single-pass input iterator that reads successive objects of type T from the std::basic_istream object for which it was constructed
Первый читает сугубо characters, т.е. символы\буквы, а второй поддерживает чтение любого типа данных

Добавлено через 1 минуту
Мне это не особо интересно, точнее разжевывать не интересно, дальше дочитайте сами.

Добавлено через 2 минуты
Разница между чтением, std::istreambuf_iterator
The actual read operation is performed when the iterator is incremented, not when it is dereferenced.
std::istream_iterator
by calling the appropriate operator>>.
Добавлено через 6 минут
http://en.cppreference.com/w/cpp/ite...ator/operator*
http://en.cppreference.com/w/cpp/ite...ator/operator*
Первый возвращаем указатель либо ссылку на текущий объект, а второй константный указатель либо ссылку
BESSON_off
 Аватар для BESSON_off
3 / 0 / 1
Регистрация: 08.07.2013
Сообщений: 329
16.05.2014, 20:57  [ТС]     Отличие istreambuf_iterator от istream_iterator #5
Я английским к сожалению не владею...
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
16.05.2014, 21:00     Отличие istreambuf_iterator от istream_iterator #6
http://en.cppreference.com/w/cpp/ite...iterator/equal этого нету в std::istream_iterator

Добавлено через 1 минуту
BESSON_off, и самое главное
Notes
When reading characters, std::istream_iterator skips whitespace by default (unless disabled with std::noskipws or equivalent), while std::istreambuf_iterator does not. In addition, std::istreambuf_iterator is more efficient, since it avoids the overhead of constructing and destructing the sentry object once per character.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
16.05.2014, 21:01     Отличие istreambuf_iterator от istream_iterator #7
Цитата Сообщение от BESSON_off Посмотреть сообщение
Чем же они отличаются?
Цитата Сообщение от BESSON_off Посмотреть сообщение
Я английским к сожалению не владею...
http://cpp.com.ru/meyers/ch4.html#t46
Совет 29.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.05.2014, 21:05     Отличие istreambuf_iterator от istream_iterator
Еще ссылки по теме:

C++ Как работает istreambuf_iterator?
C++ Istream_iterator back_inserter
Borland c++ 5.02 ругается на istream_iterator C++

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

Или воспользуйтесь поиском по форуму:
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
16.05.2014, 21:05     Отличие istreambuf_iterator от istream_iterator #8
Цитата Сообщение от BESSON_off Посмотреть сообщение
Я английским к сожалению не владею...
Поменяй домен 3го уровня с en на ru. Пример:
http://en.cppreference.com/w/cpp/ite...ambuf_iterator
http://ru.cppreference.com/w/cpp/ite...ambuf_iterator

Добавлено через 2 минуты
alsav22, с конструктором это прикольно. Но я первый написал о пропусках (: Отличие istreambuf_iterator от istream_iterator
Yandex
Объявления
16.05.2014, 21:05     Отличие istreambuf_iterator от istream_iterator
Ответ Создать тему
Опции темы

Текущее время: 10:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru