En esta respuesta, me referiré a la matriz 2D como una matriz multidimensional. Se puede aplicar el mismo método para dimensiones de más de 2.
Usando potentes funciones orientadas a objetos de C ++, es muy fácil devolver una matriz multidimensional. Simplemente cree una clase cuyos objetos representen una matriz 2-D y puede devolver fácilmente ese objeto (matriz 2-D) devolviendo su dirección o valor o simplemente por referencia. Supongo que la forma orientada a objetos C ++ de devolver matrices 2-D ya está cubierta en varias respuestas a esta pregunta. Pero quiero enfatizar la forma en que C ++ devuelve una matriz 2-D usando punteros.
Déjame mostrarte con un ejemplo:
- ¿Cuáles son los 5 mejores algoritmos con los que debería estar familiarizado para tener éxito en una entrevista de desarrollador junior?
- ¿Qué piensa Ashish Kedia sobre el libro 'Introducción a los algoritmos de CLRS'? ¿Cómo ha estudiado el libro?
- ¿Cómo se calculan los puntos de clasificación para un desafío en CodeEval?
- ¿Qué programas pueden determinar las instrucciones de plegado de origami para una forma tridimensional dada?
- ¿Cómo resolver la pregunta 1 de ZIO2015? ¿Es un enfoque de programación dinámica?
Este es solo un programa de demostración que toma datos en una matriz 2D e imprime los elementos. He puesto comentarios en líneas importantes y espero que el código se explique por sí mismo. Este tipo de uso de devolver una matriz también se puede usar en C. Aquí está el fragmento de código en ejecución.
Consejo: use void * cuando no esté seguro de cómo devolver la dirección de la función llamada y escriba el valor en la función de llamada en consecuencia.
Nota: El nombre de la matriz 2-D representa un puntero constante a una matriz (el puntero a una matriz es diferente de un puntero a un entero). Así que lo he escrito en consecuencia. Para obtener información sobre el puntero constante a una matriz, consulte este artículo:
¿Cómo describir el puntero constante a una matriz en C / C ++?