*   >> Чтение Образование Статьи >> science >> programming

Принципы Simple C ++ Sequence Container

реместить его за то же число раз, в противном случае индексация пойдет не так. Так что это не целесообразно, чтобы переместить указатель массива. Вы можете иметь более одного указателя, указывающий на тот же адрес в памяти; что вы можете иметь указатели разными именами, указывающих на тот же адрес. В приведенном выше коде, мы хотели адрес последнего (добавленный) элемента. Чтобы решить данную проблему (проблему) индекс, это хорошо, чтобы иметь указатель другим именем, что будет сканировать ваш объект для вас, чтобы получить адрес, который вы ищете.

Этот адрес может быть возвращен или сохранены где-то в объект (идентификатор). Таким образом указатель на массив (имя массива) не изменит свою позицию и индексацию, используя имя массива останется ОК. Страх проблемы индексации там не будет. Для приведенного выше кода, возврату или сохранены адрес, то будет использоваться, чтобы увидеть, если был динамичным памяти. Вам нужен класс (объект экземпляра из него), который будет иметь указатель сканирования, а затем вернуться и спасти нужный адрес. Такой объект можно назвать итератор.

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

Существует одно свойство и двух методов в классе Первый метод является конструктором Он имеет В качестве параметров индекс элемента, указатель, которого вы ищете, и указатель на динамический массив памяти. В первом заявлении внутри конструктора, указатель массива, который указывает на первый элемент массива присваивается новый указатель в заявлении инициализации. Именно это новый указатель, который увеличивается, а не указатель на массив. для-цикл в конструкторе увеличивает новый указатель несколько раз, равное позиции индекса (INDX) прислал в качестве аргумента.

Последнее утверждение в конструкторе присваивает конечный увеличивается указатель на свойства класса. Второй способ в классе, возвращает этот последний увеличенное значение. Это, как работает наша итератор. Это займет новый указатель в положение и оставляет его там, и не принимать его обратно в исходное положение. Практические итераторы работать подобным образом. С практическими итераторов, если вы хотите, чтобы изменить положение итератора

Page   <<  [1] [2] [3] [4] >>
Copyright © 2008 - 2016 Чтение Образование Статьи,https://ru.nmjjxx.com All rights reserved.