Здравствуйте, гость ( Вход | Регистрация )
Tonal | Дата 23.2.2010, 18:41 |
Это близнецы-братья, как Партия и Ленин. Там, где можно определить foreach можно и итератор нарисовать и наоборот. Для прочищения мозгов в этом направлении очень помогает изучение Haskell-я и Python-а |
|
Iron Bug | Дата 20.2.2010, 23:23 |
я думаю, что "итерабельны" только упорядоченные множества: у них есть начало, конец и направление. а foreach, вообще говоря, может быть определён на любом множестве. | |
kwisp | Дата 18.2.2010, 11:23 |
к примеру, итератор может содержать указатель на следующий/предыдущий элемент, может быть интерактивным - т.е получив его один раз по идее и сохранив его, при изменении контейнера он будет хранить верное значение. |
|
Tonal | Дата 17.2.2010, 21:49 |
Стандартный <algorithm> boost.algorithm, boost.iterator, boost.range, boost.graph, boost.gil... ну там много, практически все контейнеры предоставляют итераторы и инициализируются с них... |
|
Litkevich Yuriy | Дата 17.2.2010, 20:28 |
Кроме того, их можно передавать в обобщённые алгоритмы. ещё один случай.Может какие-нибудь ещё вспомнятся, так сказать насобирать, краткий списочек. |
|
Tonal | Дата 17.2.2010, 20:05 |
Итератор - очень мощная концепция. Например с их помощью можно реализовать отложнные вычисления. (см. Boost, Python, Haskell) Кроме того, их можно передавать в обобщённые алгоритмы. foreach всего лишь один из них - самый простой. |
|
Litkevich Yuriy | Дата 17.2.2010, 19:01 |
Вот возник у меня такой вопрос: Цитата Нужны ли итераторы там, где есть foreach и его аналоги? Например в Qt есть оператор foreach, позволяющий перебрать элементы в контейнере. В некоторых языках программирования есть его аналог, например: Цитата for itemVar in containerVar В данный момент я вижу только одну ситуацию, где может потребоваться итератор - когда нужно получить ключ элемента, а не только значение. Например в QPair, QMap и т.п. Т.к., если я не ошибаюсь, с помощью foreach и его аналогов, нельзя понять к какому элементу относится текущее значение. |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 6.5.2024, 7:23 |