Я читаю C++ Standard (раздел Input итератора) и у меня трудное время, чтобы визуализировать текст выделен жирным шрифтом:C++ Ввод Итератор
Примечание: Для входных итераторов A == B не подразумевает + + a == ++ b. (Равенство не гарантирует замены свойства или ссылочной прозрачности.) Алгоритмы на итераторах ввода никогда не должны пытаться передать через тот же самый итератор дважды. Они должны быть однопроходными алгоритмами.
Я понимаю, что итераторы ввода имеют один проход, но я не могу представить его в коде на C++. Может кто-нибудь, пожалуйста, покажите мне в примере, как сделать итератор одним проходом?
Что вы подразумеваете под «как сделать итератор, чтобы стать одним проходом»? Почему они проходят один проход? Или как работать с такими итераторами? –
Я не уверен, что вы спрашиваете. Итераторы - это то, чем они являются; они не «становятся» ничем. Вы просите пример итератора, который не является многопроходным? Если да, рассмотрим тот, который читает из 'stdin' –
@Revolver_Ocelot Извините за то, что он не ясен, я хочу создать итератор ввода с нуля (не используя STL или boost) для обучения. Я просто не знаю, как сделать мой класс итератора ввода одним проходом (силовой проход)? В моем понимании это работа основного контейнера или потока ('stdin'), чтобы сделать итератор в качестве входного или пересылаемого итератора, правильно? – Orion