Что такое Итераторы, C++?

Что такое Итераторы в C++?

21
задан Ozan 21 February 2010 в 06:31
поделиться

5 ответов

Итераторы - это способ обхода коллекции объектов. Как правило, они позволяют получить последовательный доступ к контейнеру STL (стандартной библиотеки шаблонов) способами, аналогичными доступу к классическому массиву C с помощью указателя. Чтобы получить доступ к объекту через итератор, вы разыменовываете его, как указатель в языке C. Для доступа к следующему объекту в коллекции используется оператор инкремента (++). Некоторые контейнеры имеют несколько видов итераторов, которые позволяют обходить коллекцию различными способами.

16
ответ дан 29 November 2019 в 21:12
поделиться

Из стр. 80 из Accelerated C ++ :

Итератор - это значение, которое

  • Идентифицирует контейнер и элемент в контейнере
  • Позволяет нам исследовать значение, хранящееся в этом элементе
  • Обеспечивает операции для перемещение между элементами в контейнере
  • Ограничивает доступные операции способами, которые соответствуют тому, что контейнер может эффективно обрабатывать
2
ответ дан 29 November 2019 в 21:12
поделиться

Хотя поначалу это кажется довольно очевидным, на самом деле это гораздо более глубокий вопрос, чем вы можете себе представить. Вместе с Полом МакДжоунсом Александр Степанов (разработчик оригинала, для всех, кто об этом не знает) недавно выпустил книгу под названием Элементы программирования (также известная как EOP). Шестая глава этой книги целиком посвящена итераторам, и значительная часть остальной части книги также тесно связана с итераторами. Любой, кто действительно хочет знать итераторы во всех деталях, может прочитать эту книгу.

Предупреждение: EOP - это , а не для слабонервных. Он относительно короткий (~ 260 страниц), но довольно плотный. Судя по опыту, раннее начало работы немного сбивает с толку. Моя первоначальная реакция на первую главу была более или менее «ну, это настолько очевидно, что вряд ли стоит читать. В конце концов, я начал программировать еще на прошлой неделе!»

К счастью, я просмотрел упражнения и попытался сделайте пару - и хотя я думал о предметах как о очевидных, упражнения требуют строгих доказательств. Это немного похоже на то, как вас просят доказать (в математическом смысле), что вода влажная. В конечном итоге вам просто нужно прочитать эту главу пару раз, чтобы избавиться от вашего собственного предвзятого мнения, что вы уже знаете ответы, чтобы вы могли взглянуть на реальный вопрос - что на самом деле означает «мокрый»; каковы основные характеристики "влажности"?

12
ответ дан 29 November 2019 в 21:12
поделиться

Да! Вам потребуется учетная запись Facebook для проверки подлинности как. Я не уверен в s2s offhand, но c2s бот возможен.

-121--4055785-

Для таблицы нет параметров сортировки.

У базы данных есть сопоставление по умолчанию (который дефолты к сопоставлению для сервера).

Параметры сортировки по умолчанию для базы данных будут применены к любому столбцу, добавляемому в таблицу, ЕСЛИ явно не указано значение параметров сортировки на уровне столбца.

-121--3866225-

http://en.wikipedia.org/wiki/Iterator

Что-то, что позволяет проходить через все в массиве, один за другим.

В c++, я думаю, вы говорите о "for_each"... Насколько я знаю, C++ на самом деле не имеет "foreach" в отличие от языков, таких как C #. Однако она имеется в стандартной библиотеке шаблонов.

2
ответ дан 29 November 2019 в 21:12
поделиться

Они представляют позицию в последовательности. Сами по себе они не более чем любопытство, но при разыменовании они приводят к значению, содержащемуся в последовательности в той позиции, которую она представляет.

1
ответ дан 29 November 2019 в 21:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: