|
4226 / 1799 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
Иттераторы29.07.2011, 09:09. Показов 4374. Ответов 42
Метки нет (Все метки)
Я в принципе понимаю, что такое иттератор, но нужно чёткое определение. И как формулировать, что такое цикл с иттератором и чем он отличается от цикла со счётчиком? И как точно пишется слово "иттератор" по-русски и по-английски?
0
|
|
| 29.07.2011, 09:09 | |
|
Ответы с готовыми решениями:
42
Иттераторы Инкапсуляция, иттераторы, абстрактные списки на С Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
95 / 95 / 5
Регистрация: 10.04.2011
Сообщений: 256
|
|
| 29.07.2011, 14:12 | |
|
0
|
|
|
4226 / 1799 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
||
| 29.07.2011, 14:26 [ТС] | ||
|
zuq, а так: "итератором называется подобный счётчику цикла, но не являющийся таковым объект специального класса, который может использоваться только для доступа к элементам контейнера без раскрытия его структуры и в заголовке цикла полного перебора этого контейнера, дополнительно отличающийся от счётчика цикла тем, что для итератора не определено понятие шага и операторы сравнения, кроме симметричных, устанавливающих факт равенства, или неравенства, но не отвечающих на вопрос, какой из итераторов больше", "циклом с итератором называется цикл полного перебора контейнера без раскрытия его структуры, подобный циклу со счётчиком, но использующий вместо него подобный счётчику, но не являющийся таковым и называемый итератором объект специального класса, который может использоваться только в заголовке такого цикла и для доступа к элементам перебираемого контейнера и дополнительно отличается от счётчика тем, что что для итератора не определено понятие шага и операторы сравнения, кроме симметричных, устанавливающих факт равенства, или неравенства, но не отвечающих на вопрос, какой из итераторов больше" пойдёт?
Добавлено через 4 минуты
0
|
||
|
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
|
|
| 29.07.2011, 14:26 | |
|
taras atavin, Если ты хочешь, что бы читающий окончательно запутался в этом термине, то пойдет )
0
|
|
|
95 / 95 / 5
Регистрация: 10.04.2011
Сообщений: 256
|
|||
| 29.07.2011, 14:29 | |||
|
Многабукф
![]() Слишком сильно завязано на циклах. И определение действительно запутанное...
0
|
|||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||
| 29.07.2011, 14:31 | ||
|
taras atavin, А теперь смотрим реализацию например итераторов вектора) И радуемся. Это я на тему
0
|
||
|
4226 / 1799 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|||
| 29.07.2011, 14:33 [ТС] | |||
|
0
|
|||
|
|
||
| 29.07.2011, 14:35 | ||
|
taras atavin, почитайте GOF, там достаточно подробно описана идея итераторов. Конкретного определения то и нет ни у кого, это все же не математика
![]() Во-первых понятие итераторов не надо привязывать к понятию циклов. В принципе вот отличное определение итератора (изображение). Точнее даже не придумаешь ![]() Это просто реализация способа получения доступа к элементам контейнера (агрегата).
0
|
||
|
95 / 95 / 5
Регистрация: 10.04.2011
Сообщений: 256
|
|
| 29.07.2011, 14:36 | |
|
Я один раз вызову find(). А потом могу делать с итератором "что угодно". Можно "шагать" не только инкрементно но и большими "шагами"
0
|
|
|
4226 / 1799 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
||
| 29.07.2011, 14:36 [ТС] | ||
|
0
|
||
|
|
||||||||||||||||||||||
| 29.07.2011, 14:44 | ||||||||||||||||||||||
Однако, подобный подход (с методами доступа) менее гибкий, чем итераторы. То есть здесь нет никакого правила обхода контейнера, а итераторов может быть сколь угодно много и у каждого есть свое правило обхода. Например, последовательный обход или обход через одного, только элементы с четными или нечетными индексами, элементы, которые больше нуля или меньше нуля, много всяких-разных И чтобы получить еще одну модель обхода, программисту достаточно создать еще один итератор, и просто применить его в цикле. А не придумывать каждый раз мудреный цикл.Но опять же с любым итератором я могу обойтись и без циклов. Допустим, если итератор проходится по отрицательным числам в контейнере, тогда
0
|
||||||||||||||||||||||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 29.07.2011, 14:55 | |
|
taras atavin, Э. В исходниках STL.
0
|
|
|
4226 / 1799 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|||
| 29.07.2011, 15:01 [ТС] | |||
|
fasked, а так: "Итератором называется объект специально класса, учитывающий структуру контейнера и без её раскрытия инкапсулирующий: доступ к элементам контейнера, переход при переборе контейнера к следующему в каком либо порядке перебора элементу и определение того, перебраны ли все элементы контейнера, или ещё нет, допускающий использование в качестве параметра цикла, и подобный счётчику цикла в том, что при использовании итератора в цикле итератор меняется в заголовке цикла, но счётчиком не являющийся и отличается от него тем, что счётчик ничего не инкапсулирует и структуры контейнеров не знает, а для итератора могут быть не определены понятия шага и операторы асимметричного сравнения, отвечающие на вопрос о том, какой из двух итераторов больше", "Циклом с итератором называется цикл перебора контейнера без раскрытия его структуры с называемым итератором параметром-объектом специально класса, учитывающим структуру перебираемого контейнера и без её раскрытия инкапсулирующего: доступ к его элементам, переход при переборе контейнера к следующему в каком либо порядке перебора элементу и определение того, перебраны ли все элементы контейнера, или ещё нет, подобного счётчику цикла в том, что при использовании итератора в цикле итератор меняется заголовке цикла, но счётчиком не являющегося и отличающегося от него тем, что счётчик ничего не инкапсулирует и структуры контейнеров не знает, а для итератора могут быть не определены понятия шага и операторы асимметричного сравнения, отвечающие на вопрос о том, какой из двух итераторов больше" пойдёт?
Добавлено через 1 минуту Добавлено через 4 минуты Определение:
0
|
|||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||
| 29.07.2011, 15:06 | ||||||
|
taras atavin, Кстати насчет find без циклов)
taras atavin, В гугле. PortSTL например.
1
|
||||||
|
|
|||||
| 29.07.2011, 15:15 | |||||
|
taras atavin, Вам бы в юристы
Мне крайне интересно, к чему такие сложности в определениях. Можно, конечно, оставить так, но Подводя итог, я бы сказал, что итератором называется объект, позволяющий осуществлять перебор элементов контейнера определенным способом (по определенному правилу) и не раскрывающий особенностей реализации как контейнера, так и самого способа (правила) перебора. Теперь про определение цикла. Опять же, если бы меня спросили, что такое цикл с итераторами, я бы ответил: циклом с итераторами называется цикл, в котором для доступа к элементам контейнера используются итераторы. Все
0
|
|||||
|
4226 / 1799 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
| 29.07.2011, 15:16 [ТС] | |
|
ForEveR, про рекурсию я и не подумал. Но от обязательности цикла я и так уже избавился. Ещё есть недочёты?
0
|
|
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 29.07.2011, 15:17 | |
|
taras atavin, fasked все четко написал. советую прислушаться.
0
|
|
|
4226 / 1799 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
| 29.07.2011, 15:19 [ТС] | |
|
0
|
|
|
4226 / 1799 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
||||
| 29.07.2011, 15:32 [ТС] | ||||
Добавлено через 3 минуты Добавлено через 2 минуты Кстати, не от расплывчатости ли формулировок пошло "закон что дышло..."? В технике же так нельзя, тем более в программировании.
0
|
||||
|
|
|||||||
| 29.07.2011, 15:33 | |||||||
Обратным может быть случай, когда отсутсвует метод next(), но есть метод prev(). Но это конечно было бы уже немного забавно
0
|
|||||||
|
Новые блоги и статьи
|
|||
|
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version
1. 2003 - 06 - Designing Virtual Worlds (1st Edition)
Автор: Richard A. Bartle | Объем: 768 стр.
Ссылки: Amazon
. . .
|
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
|
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы.
Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
|
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version
Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
|
|
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров".
Задача:
Запрет инициалов.
Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
|
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . .
Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
|
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг.
Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует.
В процессе разработки. . .
|
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
|