crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Нужны ли итераторы там, где есть foreach
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
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, 23:05) *
Кроме того, их можно передавать в обобщённые алгоритмы.
ещё один случай.
Может какие-нибудь ещё вспомнятся, так сказать насобирать, краткий списочек.
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 и его аналогов, нельзя понять к какому элементу относится текущее значение.
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 6.5.2024, 7:23