Этот адрес может быть возвращен или сохранены где-то в объект (идентификатор). Таким образом указатель на массив (имя массива) не изменит свою позицию и индексацию, используя имя массива останется ОК. Страх проблемы индексации там не будет. Для приведенного выше кода, возврату или сохранены адрес, то будет использоваться, чтобы увидеть, если был динамичным памяти. Вам нужен класс (объект экземпляра из него), который будет иметь указатель сканирования, а затем вернуться и спасти нужный адрес. Такой объект можно назвать итератор.
На практике, итераторы для контейнеров контейнерный библиотеки являются более сложными, чем это. Мы не будем вдаваться в такой сложности здесь. Следующий код дает класс простого итератора для вышеуказанной проблемы: класс ИТЭР {общественности: Int * retPtr; Iter (INT INDX, INT * PTR) {INT * iterPtr = PTR; для (INT I = 0; я ++;} iterPtr retPtr = iterPtr;} INT * retrnPtr () {вернуть retPtr;}};..
Существует одно свойство и двух методов в классе Первый метод является конструктором Он имеет В качестве параметров индекс элемента, указатель, которого вы ищете, и указатель на динамический массив памяти. В первом заявлении внутри конструктора, указатель массива, который указывает на первый элемент массива присваивается новый указатель в заявлении инициализации. Именно это новый указатель, который увеличивается, а не указатель на массив. для-цикл в конструкторе увеличивает новый указатель несколько раз, равное позиции индекса (INDX) прислал в качестве аргумента.
Последнее утверждение в конструкторе присваивает конечный увеличивается указатель на свойства класса. Второй способ в классе, возвращает этот последний увеличенное значение. Это, как работает наша итератор. Это займет новый указатель в положение и оставляет его там, и не принимать его обратно в исходное положение. Практические итераторы работать подобным образом. С практическими итераторов, если вы хотите, чтобы изменить положение итератора