Para resolver el problema anterior (problema de índice), es bueno tener un puntero de un nombre diferente que escaneará tu objeto para que usted consiga la dirección que busca. Esta dirección puede ser devuelto o se guarda en algún lugar de un objeto (identificador). De esa manera el puntero de la matriz (nombre de la matriz) no va a cambiar su posición y la indexación utilizando el nombre del arreglo permanecerán en Aceptar. El temor del problema de indexación no estará allí. Para el código anterior, la dirección devuelta o guardada se utilizará para ver si la memoria dinámica disponible.
Usted necesita una clase (un objeto instancia de ella) que tendrá el puntero de escaneo y luego regresar o guardar la dirección que desee. Tal objeto puede ser llamado un iterador. En la práctica, los iteradores para los contenedores de la Biblioteca de contenedores son más complejas que esto. No vamos a entrar en cualquiera de tal complejidad aquí.
El siguiente código da la clase de un iterador sencilla para el problema anterior: Clase Iter {public: int * retPtr; Iter (int indx, int * ptr) {int * iterPtr = ptr; for (int i = 0; i ++ iterPtr;} retPtr = iterPtr;} int * retrnPtr () {return retPtr;}};.. Hay una propiedad y dos métodos de la clase El primer método es el constructor Tiene como parámetros un índice del elemento cuyo puntero que busca, y el puntero a la matriz de memoria dinámica.
En la primera declaración dentro del constructor, el puntero de la matriz, lo que apunta al primer elemento de la matriz se asigna a un nuevo puntero en una sentencia de inicialización. Es este nuevo indicador que se incrementa y no el puntero a la matriz. El bucle for en el constructor incrementa el nuevo puntero un número de veces igual a la posición de índice (indx) enviado como argumento. La última declaración en el constructor asigna el puntero última incrementado a la propiedad de la clase. El segundo método en la clase, devuelve este valor final incrementado.
Así es como funciona nuestro iterador. Se necesita un nu