Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 52, средняя оценка - 4.71
Romiys
3 / 3 / 0
Регистрация: 27.12.2010
Сообщений: 56
#1

Итератор ? - C++

16.08.2011, 16:27. Просмотров 6376. Ответов 40
Метки нет (Все метки)

Как выглядит итератор на вложеный контейнер? Например осуществить доступ к 1-му символу 3-го элемента в векторе vector< <vecrot<char> > vec через индекс можно так vec[2][0]. А как через итератор?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.08.2011, 16:27     Итератор ?
Посмотрите здесь:

C++ Итератор С++
итератор C++
Итератор!!!!! C++
C++ итератор
Итератор C++
C++ Итератор в <vector>
итератор C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryLaptev
Эксперт С++
1029 / 808 / 48
Регистрация: 30.04.2011
Сообщений: 1,651
17.08.2011, 07:28     Итератор ? #21
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Сыроежка Посмотреть сообщение
На самом деле итератор - это шаблонный класс, моделирующий указатели. А для указателей, как известно, действует арифметика указателей, то есть произвольный доступ.
И итераторы именно появились из-за того, что появилась необходимость моделировать указатели для последовательностей, к которым встроенные указатели не подходят.

То есть главный смысл понятия итераторов - это моделирование указателей. То есть нельзя сказать, что итераторы используются исключительно для последовательного доступа. Иначе сразу же вылетают многие алгоритмы, начиная с простого алгоритма swap.
Не... Форма указателей - это только в С++, чтобы было как у массива. Для массива в языке есть естественный "итератор" - указатель. Поэтому в С++ "подогнали" синтаксис к этому "итератор". А вообще итератор ака Курсор - это один из паттернов. Реализован может быть как угодно. Не обязательно шаблонным классом. Может быть вообще - не класс... Много написал про это Элджер. У него вообще весьма хорошая книга про указатели.
Добавлю:

Доступ к элементам контейнера
Одной из важнейших характеристик является доступ к элементам контейнера. Обычно различают прямой, последовательный и ассоциативный доступ. Прямой доступ к элементу — это доступ по номеру (или, еще говорят, по индексу) элемента. Именно таким образом мы обращаемся к элементам массива, Выражение
v[7]
означает, что мы хотим оперировать элементом контейнера v, имеющим номер (индекс) 7. Нумерация элементов может начинаться, вообще говоря, с любого числа, однако в С++ принято нумерацию начинать с нуля, так как для массивов (которые являются частным случаем контейнера) принята именно такая нумерация.

Последовательный доступ отличается тем, что мы не имеем в распоряжении индексов элементов, зато можем перемешаться последовательно от элемента к элементу. Можно считать, что существует невидимая «стрелка»-индикатор, которую перемещают по элементам контейнера с помощью некоторого множества операций. Тот элемент, на который в данный момент «стрелка» показывает, называется текущим элементом.
Обычно набор операций последовательного доступа включает следующие:
- перейти к первому элементу,
- перейти к последнему элементу,
- перейти к следующему элементу,
- перейти к предыдущему элементу,
- перейти на n элементов вперед (от первого в сторону последнего элемента контейнера),
- перейти на n элементов назад (от конца к началу контейнера),
- получить (изменить) значение текущего элемента.

Эти операции могут быть представлены в функциональной форме, например, так
C++
1
2
3
4
5
6
7
next(v);            // перейти к следующему
prev(v);            // перейти к предыдущему
first(v);           // перейти к первому
last(v);            // перейти к последнему
current(v);         // получить текущий
forward(v, n);      // перейти на n элементов вперед 
back(v, n);         // перейти на n элементов назад
Те же операции, реализованные как методы класса (контейнера), можно представить таким образом:
C++
1
2
3
4
5
6
7
v.next();           // перейти к следующему
v.prev();           // перейти к предыдущему
v.first();          // перейти к первому
v.last();           // перейти к последнему
v.current();                // получить текущий
v.skip(n);          // перейти на n элементов вперед 
v.skip(-n);         // перейти на n элементов назад
Однако в С++ «стрелку»-индикатор удобнее представить в виде некоторого объекта, связанного с контейнером. Если этот объект имеет имя iv, то те же операции могут быть реализованы и так:
C++
1
2
3
4
5
6
7
iv = v.begin(); // перейти к первому
iv = v.last();      // перейти к последнему
++iv;               // перейти к следующему
--iv;               // перейти к предыдущему
iv+=n;          // перейти на n элементов вперед
iv-=n;          // перейти на n элементов назад
*iv             // получить значение текущего элемента
Не правда ли, очень похоже на указатель?! Однако это не указатель — в практике объектно-ориентированного программирования такой объект называется итератором. Итератор — это объект, обеспечивающий (последовательный) доступ к элементам контейнера. Итератор представляет собой более общую концепцию, чем указатель. В книге [17] итератор описан как один из паттернов программирования — Iterator.
Mr.X
Эксперт С++
3039 / 1684 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
17.08.2011, 08:58     Итератор ? #22
Цитата Сообщение от OstapBender Посмотреть сообщение
Mr.X, интересное замечание. но это всё таки читерство, т.к юзается [] .
а вообще
C++
1
matr.begin()[3].begin()[4]
также можно заменить на
C++
1
matr.at(3).at(4)
а это уже почти [][]
Но в выражении
C++
1
matr.begin()[3].begin()[4]
квадратные скобки - это отнюдь не вызов оператора [] вектора, а работа с операциями
итератора. Сначала выполняется операция итератора +. а затем операция итератора *
(разыменование).
Сыроежка
Заблокирован
17.08.2011, 15:40     Итератор ? #23
Цитата Сообщение от alex_x_x Посмотреть сообщение
итераторы как понятие существуют в программировании и вне стандарта, собственно вне стандарта они и появились
как бы там ни было основная идея итератора - обход контейнера без раскрытия особенностей его реализации, не важно ++ это, java или c# или еще бог весть что
Но мы в данной теме говорим не об итераторах вообще, а об конкретном понятии итератора в рамках стандарта С++. Исходный вопрос темы состоит в том, как записать итератор для ветора, то есть построение синтиаксической конструкции в рамках стандарта языка С++.
Интерпретировать итераторы, как исключительно для последовательного обхода - это на самом деле сужение понятия итератора, которое выражено в стандарте С++. В стандарте С++ прямо говорится, что итераторы - это обобщение указателей. А, как известно, указатели обладают арифметикой указателей, то есть арифметикой произвольного доступа. Поэтому, строго говоря, итераторы должны соответствовать возможностям указателей. И исходный пример решения вопроса темы как раз демонстрирует такое поведение итераторв, так как к итератору вектора в представленных примерах непосредственно прибавляется целочисленное выражение. То есть примеры этой темы как раз совершенно не демонстрируют такое узкое понимание, как исключительно последовательный доступ.

То есть я хочу отметить, что не следует пытаться переиначивать смысл стандарт, сужая значения понятий, данных в стандарте.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
17.08.2011, 15:57     Итератор ? #24
Цитата Сообщение от Сыроежка Посмотреть сообщение
В стандарте С++ прямо говорится, что итераторы - это обобщение указателей. А, как известно, указатели обладают арифметикой указателей, то есть арифметикой произвольного доступа.
++для указателя и ++ для итератора - две большие разницы. Настолько большие, что о слове "указатель" стоит вообще забыть, в разговоре об обобщённых контейнерах.

Добавлено через 21 секунду
*инкремент в смысле, а не ++
Сыроежка
Заблокирован
17.08.2011, 16:48     Итератор ? #25
Цитата Сообщение от Deviaphan Посмотреть сообщение
++для указателя и ++ для итератора - две большие разницы. Настолько большие, что о слове "указатель" стоит вообще забыть, в разговоре об обобщённых контейнерах.

Добавлено через 21 секунду
*инкремент в смысле, а не ++
Не вижу большого смысла в вашем утверждении.
Например, для шаблонного класса вектор очень часто итератор реализуется в виде обычного указателя. Поэтому вы никакой разницы не заметите, используется ли разработчиками класса вектор итератор в виде обычного указателя, или в виде отдельного класса. В этом и состоит смысл итераторов, чтобы вы не видели разницу между работой с итераторами в виде классов и с обычными указателями.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
17.08.2011, 17:16     Итератор ? #26
Цитата Сообщение от Сыроежка Посмотреть сообщение
Например, для шаблонного класса вектор
Где во фразе "Обобщённый контейнер" есть слово "вектор"? Список, набор, словарь также являются контейнерами и поддерживают итератор. Что в них общего с указателями, кроме оператора разыменования?
Даже для вектора итераторы не всегда могут быть простыми указателями, т.к. итераторы обратного обхода (reverse iterator) нельзя просто заменить указателем.
Т.е. взаимозаменяемы исключительно (forward)итератор и указатель. Всё! Но это лишь малое подмножество всех возможных итераторов.

Цитата Сообщение от Сыроежка Посмотреть сообщение
В этом и состоит смысл итераторов, чтобы вы не видели разницу между работой с итераторами в виде классов и с обычными указателями.
Ничего подобного. Работа со словарём через итераторы не имеет ничего общего с работой со словарём через указатели.

Итераторы предназначены для единообразного обхода любых контейнеров, поддерживающих итераторы. Что, потенциально, даёт возможность взаимозаменяемости контейнеров, но в первую очередь служит для снижения сложности.
Сыроежка
Заблокирован
17.08.2011, 21:08     Итератор ? #27
Цитата Сообщение от Deviaphan Посмотреть сообщение
Где во фразе "Обобщённый контейнер" есть слово "вектор"? Список, набор, словарь также являются контейнерами и поддерживают итератор. Что в них общего с указателями, кроме оператора разыменования?
Даже для вектора итераторы не всегда могут быть простыми указателями, т.к. итераторы обратного обхода (reverse iterator) нельзя просто заменить указателем.
Т.е. взаимозаменяемы исключительно (forward)итератор и указатель. Всё! Но это лишь малое подмножество всех возможных итераторов.


Ничего подобного. Работа со словарём через итераторы не имеет ничего общего с работой со словарём через указатели.

Итераторы предназначены для единообразного обхода любых контейнеров, поддерживающих итераторы. Что, потенциально, даёт возможность взаимозаменяемости контейнеров, но в первую очередь служит для снижения сложности.
А по вашемму вектор не относится к обобщенным контейнерам?! И где вы в стандарте нашли для вектора какие-то исключения для реализации его итератора?!

Что общего у итераторв с указателями? Да, практически, все! То есть если вы возьмете итератор произвольного доступа, то вы не найдете никаких отличий! В этом и состоит смысл введения итераторов! Естественно, что некоторые контейнеры накладывают ограничения на возможности итераторов. Но это не меняет суть вопроса!

И вы глубоко заблуждаетесь, что для вектора, у которого итератором может служить простой указатель, нельзя делать обратный обход!?! И даже для итератора вектора, который не является обычным указателем, можно делать обратный обход!

ВЫ просто демонстрируете свое полное незнание стандартного класса вектор! Итератор класса вектор является [I]итератором произвольного доступа, как и у обычных массивов[/I] А это значит вы можете применять любую операцию, которая является корректной для указателей. То есать вы можете не только делать операцию инкримента, но и операцию декримента для обратного обхода! Более того, если бы вы внимательно посмотрели эту тему, то увидели, что здесь используются в примерах выражения вида v.begin() + 4, а это означает, что вы также можете и вычитать из итератора вектора, а, значит, и делать обратный обход!
ForEveR
Модератор
Эксперт С++
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
17.08.2011, 23:36     Итератор ? #28
Сыроежка, Скорее вы. Вам одно говорят, вы другое отвечаете. Говорилось, что контейнеров стандартных много, а не только вектор. Итератор не есть указатель. А reverse_iterator не сможет работать с простым указателем. Но вы все переиначили и опять пытаетесь выставить человека дураком. Учите ка С++, а не учите других.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
18.08.2011, 06:25     Итератор ? #29
Цитата Сообщение от Сыроежка Посмотреть сообщение
Что общего у итераторв с указателями? Да, практически, все!
Только оператор разыменования, инкремент и декремент. Т.е. в тексте выглядит похоже, не спорю, но на этом схожесть заканчивается.
Romiys
3 / 3 / 0
Регистрация: 27.12.2010
Сообщений: 56
18.08.2011, 22:37  [ТС]     Итератор ? #30
Цитата Сообщение от Сыроежка Посмотреть сообщение
На самом деле итератор - это шаблонный класс, моделирующий указатели. А для указателей, как известно, действует арифметика указателей, то есть произвольный доступ.
И итераторы именно появились из-за того, что появилась необходимость моделировать указатели для последовательностей, к которым встроенные указатели не подходят.

Как я уже сказал, в самом начале главы "Итераторы" стандарта, дается развернутое пояснение, что такое итераторы, и для чего они созданы. Там не говорится ни о каком "исключительно последовательном доступе". Поэтому там вводятся категории итераторов.

...
Скажите пожалуйста на счёт : " в самом начале главы "Итераторы" стандарта ..." Что это за учебник? Если можно скинте,пожалуйста, ссылочку
alex_x_x
бжни
2443 / 1648 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
19.08.2011, 00:59     Итератор ? #31
Romiys, чтото вроде этого
http://www.open-std.org/jtc1/sc22/wg...2005/n1905.pdf
skvor
640KB мне хватило на всё.
118 / 49 / 2
Регистрация: 07.06.2009
Сообщений: 442
19.08.2011, 12:20     Итератор ? #32
Итератор для "вложенного" контейнера выглядит точно также, как итератор на не вложеный контейнер.

Аналогично, индексация вложеного во что-то массива не зависит от того, куда этот массив вложен.

Если у вас массив строк, то итератор для прохода по символам отдельной строки не будет иметь особенность связанную с тем, что эта строка находится в массиве. Один итератор можно последовательно применить как строкам из массива, так и к любым другим строкам.
Сыроежка
Заблокирован
19.08.2011, 21:39     Итератор ? #33
Цитата Сообщение от ForEveR Посмотреть сообщение
Сыроежка, Скорее вы. Вам одно говорят, вы другое отвечаете. Говорилось, что контейнеров стандартных много, а не только вектор. Итератор не есть указатель. А reverse_iterator не сможет работать с простым указателем. Но вы все переиначили и опять пытаетесь выставить человека дураком. Учите ка С++, а не учите других.
Я устал вам повторять одно и тоже :
C++
1
учите итераторы в С++, вы совершенно не понимаете этого раздела языка!
reverse_iterator очень хорошо работает с простыми указателями!

Добавлено через 1 минуту
Цитата Сообщение от Deviaphan Посмотреть сообщение
Только оператор разыменования, инкремент и декремент. Т.е. в тексте выглядит похоже, не спорю, но на этом схожесть заканчивается.
Я устал уже вам писать по десять раз одно и тоже. Итератор произвольного доступа ничем не отличается от указателя. Повторяю, если с десятого раза не поняли, ничем! Потому что указатель - это частный случай итератора с произвольным доступом!

Добавлено через 3 минуты
Цитата Сообщение от ForEveR Посмотреть сообщение
Сыроежка, Скорее вы. Вам одно говорят, вы другое отвечаете. Говорилось, что контейнеров стандартных много, а не только вектор. Итератор не есть указатель. А reverse_iterator не сможет работать с простым указателем. Но вы все переиначили и опять пытаетесь выставить человека дураком. Учите ка С++, а не учите других.
Такое впечатление, что у вас не все в порядке с умс твенными способностями, и вы не в состоянии понять, тчто я пишу. Я нигде не говорил, что итератор - это указатель. Я говорил, что итератор произвольного доступа ничем не отличается по функциональным возмодносятм от указателя, так как указатель - это частный случай итератора с произвольным доступом!

Добавлено через 1 минуту
Цитата Сообщение от Romiys Посмотреть сообщение
Скажите пожалуйста на счёт : " в самом начале главы "Итераторы" стандарта ..." Что это за учебник? Если можно скинте,пожалуйста, ссылочку
Это не уцчебник, а описание стандарта языка С++. Глава 24 описывает итераторы.
silent_1991
19.08.2011, 21:53
  #34
 Комментарий модератора 
Цитата Сообщение от Сыроежка Посмотреть сообщение
вы совершенно не понимаете этого раздела языка!
Цитата Сообщение от Сыроежка Посмотреть сообщение
Такое впечатление, что у вас не все в порядке с умс твенными способностями
Вам уже говорили, что вы не в праве оценивать чужие умственные способности и громко кричать направо и налево, что никто ничего не знает, кроме вас. Вам говорил это модератор, и оформил это предупреждение специальным тегом. Это автоматически означает устное замечание. Теперь о том же самом говорю вам я. В следующий раз увижу подобное - будет вам жёлтая карточка. Потом красная. Потом будем принимать более жесткие меры.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
20.08.2011, 08:43     Итератор ? #35
Цитата Сообщение от Сыроежка Посмотреть сообщение
reverse_iterator очень хорошо работает с простыми указателями!
ForEveR не точно выразился. reverse_iterator не может быть заменён указателем. Он это имел в виду.
Чтобы заменить reverse_iterator на указатель, нужно полностью переписывать логику работы программы.

Цитата Сообщение от Сыроежка Посмотреть сообщение
Итератор произвольного доступа ничем не отличается от указателя.
reverse_iterator для вектора является итератором произвольного доступа и не имеет ничего общего с указателем, кроме вышеназванных операций. То, что для вектора итератор (иногда) является указателем, это просто особенность реализации, которой может и не быть.
ForEveR
Модератор
Эксперт С++
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
20.08.2011, 19:28     Итератор ? #36
Сыроежка, Итератор не является понятием исключительно С++. Итератор - паттерн. Он используется во множестве языков (например Java, C#, Python), в которых нет указателей вообще. Поэтому не надо привязывать паттерн к одному языку и говорить, что итератор и указатель не отличаются. Даже в контексте CPP это не одно и то же, что вам уже говорят 4 страницы.
Сыроежка
Заблокирован
20.08.2011, 21:28     Итератор ? #37
Цитата Сообщение от Deviaphan Посмотреть сообщение
ForEveR не точно выразился. reverse_iterator не может быть заменён указателем. Он это имел в виду.
Чтобы заменить reverse_iterator на указатель, нужно полностью переписывать логику работы программы.


reverse_iterator для вектора является итератором произвольного доступа и не имеет ничего общего с указателем, кроме вышеназванных операций. То, что для вектора итератор (иногда) является указателем, это просто особенность реализации, которой может и не быть.
И что из тогго, что reverse_iterator не может быть заменен указателем? В чем глубокий смысл этого утверждения?! reverse_iterator - это шаблонный класс, поэтому очевидно не может быть заменен простым указателем. Только что это меняет в определении итераторов?!!!
А вторая ваша фраза - это вообще какая-то бессмыслица. reverse_iterator для обычного указателя также является итератором произвольного доступа.

Я уже сказал, что такое впечатление, что имею дело с совершенно неадекватными людьми. Зря модератор корректировал мое сообщение. Я как раз вам и говорил, что эта "особенность реализации" итераторов для вектора как раз и говорит, что итераторы являются обощением указателей, и что вы не в состоянии определить, имеете ли вы дело с обычным указателем или со специальным классом, написанным для вектора, если не посмотрите конкретно реализацию вектора.

Об этом и речь.

Честно говоря, я не знаю, сколько вам раз нужно повторять одно и тоже. Я уже это повторил не меньше 5 раз. Так что проблема данной дискуссии - это проблема того, насколько вы воьбще способны понимать, что вам пишут.
Я вам ранее написал, что итератор вектора может быть реализован либо в виде класса, либо в виде обычного указателя. Сейчас вы по прошествии с десяток сообщений, фактически, цитируете меня, правда сами не понимаете смысла того, что вы процитировали, и что эта цитата подтверждает.
До этого вы вообще утверждали, что reverse_iterator нельзя использовать с обычными указателями.

Меня всегда поражает в подобных дискуссиях одно: почему-то невежды, которые имеют обрывочные знания о языке С++ особенно агрессивны и упрямы. Вместо того, чтобы спросить, например, как применить reverse_iterator к обычному указателю, они начинают нести ахинею, что reverse_iterator нельзя применить к обычным указателям.

Добавлено через 23 минуты
Цитата Сообщение от ForEveR Посмотреть сообщение
Сыроежка, Итератор не является понятием исключительно С++. Итератор - паттерн. Он используется во множестве языков (например Java, C#, Python), в которых нет указателей вообще. Поэтому не надо привязывать паттерн к одному языку и говорить, что итератор и указатель не отличаются. Даже в контексте CPP это не одно и то же, что вам уже говорят 4 страницы.
Во-первых, мы обсуждаем С++. С++ и Java - это к вашему сведению разные языки! А в разных языках разные концепции. Могут использоваться одни и теже термины, но тем не менее эти термины будут нести различную семантическую нагрузку.
И я не говорил нигде, что итератор и указатель это одно и тоже. Это вы просто не в состоянии понять, что вам пишут, и что заложено в С++. Я говорил, что в С++ ( обратите внимание на такое странное для вас обозначение, как С++) итератор - это обобщение указателя. Я говорил, что вы можете итератором произвольного доступа заменить указатель и наоборот. И наглядной демонстрацией этого служит реализация шаблонного класса вектор в разных компиляторах, когда в одних случаях используется для вектор обычный указатель, а в других случаях разработчики компилляторов пишут класс итератора.
ForEveR
Модератор
Эксперт С++
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
20.08.2011, 21:29     Итератор ? #38

Не по теме:

Сыроежка, Сказали ведь, что я не то имел ввиду. Прекрасно можно применить.

Я вот единственное вам посоветую. Быть проще. Может и ЧСВ в норму придет. Удачи.



А в разных языках разные концепции.
Итератор является паттерном для обхода коллекции, не вдаваясь в интерфейс этого контейнера. Это отнюдь не концепция С++. Итератор в Java похож на итератор в остальных языках по действию (если не вдаваться в детали реализации). А реализация может быть какая угодно.
alex_x_x
20.08.2011, 21:38
  #39

Не по теме:

ForEveR, бесполезно, это четвертый форум, где я его наблюдаю, с трех других его так или иначе поперли

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.08.2011, 21:47     Итератор ?
Еще ссылки по теме:

Потоковый итератор C++
Итератор C++
Итератор C++
Итератор: for и амперсанд C++
Вектор и итератор с++ C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Сыроежка
Заблокирован
20.08.2011, 21:47     Итератор ? #40
Цитата Сообщение от ForEveR Посмотреть сообщение

Не по теме:

Сыроежка, Сказали ведь, что я не то имел ввиду. Прекрасно можно применить.

Я вот единственное вам посоветую. Быть проще. Может и ЧСВ в норму придет. Удачи.





Итератор является паттерном для обхода коллекции, не вдаваясь в интерфейс этого контейнера. Это отнюдь не концепция С++. Итератор в Java похож на итератор в остальных языках по действию (если не вдаваться в детали реализации). А реализация может быть какая угодно.
И что в вашем сообщении того, что противоречит тому, что мною было сказано ранее?!! Я говорил, что итератор - это обобщение указателя. И чем же ваше утверждение противоречит моему высказыванию. С чем вы спорите, можете сказать? Я точно также говорил, что нельзя различить в классе вектор, как реализован итератор: в виде класса или обычного указателя.
Так что вы собираетесь в моих высказываниях опровергнуть?
Но более того, как я уже сказал, у вас проблемы с пониманием того, что вам пишут! Я не говорил, что итератор - это концепция С++! Я говорил, что одинаковые термины в разных языках имеют серьезные семантические различия! Так что нельзя безусловно переносить одинаковый термин из одного языка в другой. Кто-то здесь говорил, что в другом языке, не С++, вообще нет указателей! А в С++ указатели есть, и указатель является частным случаем итераторов, то есть является итератором произволбного доступа.
Yandex
Объявления
20.08.2011, 21:47     Итератор ?
Ответ Создать тему
Опции темы

Текущее время: 17:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru