понятия не имеют, для чего [итератор].
blockquote>Цель итератора - предоставить единый интерфейс для косвенной ссылки на объекты и выполнить итерацию (номенклатура) последовательности таких объектов.
Возможность ссылаться на объект с помощью итератора аналогична тому, как имя переменной ссылается на связанный объект. Но итераторы более гибкие. Время жизни объекта связано с именем его переменной, но не так с итераторами; итератор может быть назначен для ссылки на другой объект, а ранее упомянутый объект остается в живых. Эта способность весьма важна для возможности повторять последовательностей.
В случае контейнера, такого как вектор, цель итератора состоит в том, чтобы косвенно ссылаться на элементы контейнера и выполнять их итерацию.
В чем разница между классом итератора и итератором?
blockquote>Значение слова «итератор» очень контекстуально. Итератор - это понятие - категория типов. Это набор требований для типов.
Если тип удовлетворяет всем требованиям, которые должен иметь итератор, то этот тип является итератором. Если объект имеет тип, который является итератором, то этот объект является итератором.
Минимальный набор требований, которым должны удовлетворять все типы итераторов, - это возможность косвенного прохождения через него (что позволяет косвенную ссылку на объекты) и увеличения (что позволяет выполнять итерацию последовательностей).
Существует иерархия категорий итераторов. Каждая более высокая категория предъявляет все больше требований, которым должен соответствовать тип, чтобы быть итератором этой категории.
Разве синтаксис итератора не похож на следующий
blockquote>Да.
для чего весь этот код, который мне дали?
blockquote>Внимательно рассмотрите, как вы предлагаете использовать итератор, и сравните его с кодом, который вам дали :
*it // you indirect through the iterator T & operator * () { // you define the indirection operator ++it // you increment the iterator iterator & operator ++ () {// you define the increment operator it != values.end() // you compare an iterator to another bool operator != (const iterator & rhs) const { // you define a comparison operator
Если ваш класс не реализует эти функции, то этот класс не будет итератором.
P.S Технически нет необходимости писать собственный класс итератора для массива (включая динамический массив, управляемый вектором). Это связано с тем, что указатель удовлетворяет всем требованиям итератора произвольного доступа - указатель является итератором, как показано на рисунке
vector::iterator
. Таким образом, вы можете просто использовать псевдоним типа:template<class T> class vector { public: using iterator = T*; // rest of vector }
Тем не менее, пользовательский итератор может быть написан для обеспечения дополнительной функциональности, которую не имеет указатель.
Я думаю, что Вы называете, это зависит от природы разговора. Если разговор является ориентированным поведением (т.е. Я хочу, чтобы эта область изменилась на основе x, или они, чтобы быть перетаскивают фронтон), чем термин агностика решения как динамический является, вероятно, лучшим. Если бы Вы говорите об определенном решении, было бы лучше использовать язык/технологию определенная терминология для ясности.
Я думал, возможно, RIA, так как я думаю "богатые" соответствия, но думающий о фактическом определении, которое, вероятно, не корректно. На самом деле RIA могла бы быть менее точной, чем Ajax.
"Динамическая сеть [content|pages|stuff]" точна, если не точный. Я вижу, что случай быть сделанным тем "DHTML" слишком конкретен.
Мои 0.02 для DHTML, являющегося допустимым, хотя в настоящее время немодный термин.
http://en.wikipedia.org/wiki/DHTML - динамический HTML
- просто, потому что большая часть высосанной анимации JavaScript и JQuery не существовала в то время, когда термин был введен, не делает его никем менее допустимый.
Некоторые люди даже сделали Ajax, прежде чем было название его...
, Что Вы называете, это действительно не имеет значения, если Вы не находитесь в маркетинговом отделе.
"вызов это эй мама, если Вы хотите к"
DHTML все еще вписывается и имеет в моих группах равных узлов. Они могли быть основанным на Ajax UI, который является все еще DHTML с Ajax, но в конце, назовите его, каково это. / пожатие плеч
Или Javascript
Назовите это сценарии DOM или DHTML. И я соглашаюсь: Ваша проблема меньше с языком и больше с младшим разработчиком. Если Вы хотите решить настоящую проблему, Вы могли бы спросить его, что он называет ею, и соглашение с нею оттуда.
Ajax. Я знаю, что это обычно используется с запросом серверной стороны, но просто потому что это - только сторона клиента, не означает, что это все еще не называют Ajax.
Ajax:
... Несмотря на имя, использование JavaScript и XML на самом деле не требуется, и при этом запросы не должны быть асинхронными.
Я называю это клиентским поведением.
я соглашаюсь с Вами также: "Ajax" резервируется для поведения, которое перезванивает к серверу.
Просто назовите его комбинация клиентских эффектов сценариев и CSS, которые могут или не могут включить асинхронные запросы к серверу .
Это - DHTML.
Я сказал бы, что Вы пытаетесь решить неправильную проблему. Проблемой является отношение сопливого юниора, не Ваш язык.