Error iso C ++ prohíbe la matriz de longitud variable

Las matrices de tamaño variable (VLA) no están prohibidas en C++; el error iso es correcto. Las matrices de tamaño de tiempo de ejecución o las matrices de tamaño variable son los otros nombres para las matrices de longitud variable. Estas matrices se dimensionan en tiempo de ejecución. Los tipos que se pueden actualizar incluyen matrices de longitud variable y punteros a matrices de longitud variable. Los tipos modificados de forma variable deben definirse a nivel de prototipo de bloque o de función. Las matrices de longitud variable son una característica que nos permite asignar automáticamente una matriz de tamaño variable en la pila. Se puede utilizar en una instrucción typedef. Comenzando con el estándar C++, C permite matrices de tamaño variable. Por ejemplo, el siguiente programa compila y funciona perfectamente en C. void PrintArray(int n){ int Array[n]; // ……} int main(){PrintArray(8);} Sin embargo, las matrices de tamaño variable no son compatibles con el estándar C++ (hasta C++11). El tamaño de la matriz es una expresión constante en el estándar C++11. Por lo tanto, el programa anterior puede no ser un programa C++ aceptable. Dado que el compilador GCC tiene una extensión correspondiente, el programa puede funcionar con el compilador GCC. Como un poco más, el tamaño de la matriz ahora es una expresión simple en C++ 14 (no una expresión constante). No es deseable tener que generar una matriz potencialmente grande en una pila con espacio limitado. Si no se da cuenta de esto a tiempo, escribiremos un código malicioso. Las matrices de longitud variable no se admiten de forma nativa en C++ porque requerirían cambios significativos en el sistema de tipos. Aquí, en el artículo de C++, mostramos cómo superar el error iso de C++ con matrices de longitud variable en tiempo de compilación.

Contenidos

Ejemplo 1: Programa para implementar un arreglo de longitud variable en C++ usando el compilador GCC

Las matrices de longitud variable pueden elegir cualquier tamaño que desee el usuario, es decir, pueden ser de tamaño variable. El siguiente es un programa de C++ para crear matrices de longitud variable: tenemos archivos de encabezado de C++ en el primer paso y el archivo de espacio de nombres. Después de eso, tenemos el método principal del programa y el cuerpo tiene la declaración de variable de puntero como «Array» y la otra declaración de variable como «Arr_Size». El cout emite la instrucción que solicita al usuario un número para el tamaño de la matriz. Entonces cin toma el valor numérico del usuario. La variable «Array» se llama donde establecemos el tamaño de la matriz. Ahora también hemos solicitado los valores de la matriz al usuario. El valor de la matriz se itera a través del bucle for hasta que alcanza el tamaño de la matriz. Luego, el segundo bucle for se usa para imprimir los valores dentro de la matriz y, al mismo tiempo, eliminamos la matriz usando eliminar[] expresión en el programa. #incluir #incluir utilizando el espacio de nombres std;int main() { int *Array, Arr_size; cout<<"Ingrese el tamaño de la matriz: "<>Tamaño_Arr; matriz = nuevo int [Arr_size]; cout<<"Ingrese los valores de la matriz: "formación[i]; cout<<"Array: "; para(int i = 0; i[i]<<" "; contar<

El shell muestra un mensaje que solicita el tamaño de la matriz después de la compilación. Luego, cuando el usuario ingresa el tamaño de la matriz, el shell le pide al usuario que establezca los valores para la matriz. Se puede acceder al tamaño de la matriz y sus elementos de la siguiente manera. Por lo tanto, podemos implementar una matriz de longitud variable en C++ sin una excepción prohibida.

Ejemplo 2: Programa para implementar un arreglo de longitud variable en C++ usando vectores

El STL de C++ proporciona un vector como alternativa a las matrices de longitud variable. Es adecuado para una amplia gama de aplicaciones. Se vuelve más claro con el programa C++ que hemos implementado a continuación. Ya que necesitamos usar vectores en nuestro programa. Entonces, la parte más importante es definir el vector como un archivo de encabezado al comienzo de la implementación del código. Agregamos el archivo vectorial en la sección de encabezado. Dentro del programa principal, tenemos una clase de vector con tipo int, y la clase de vector tiene una variable «v». Agregamos cinco elementos de tipo entero al vector. Después de eso, tenemos un ciclo de iteración para el bucle. Dentro del ciclo for, declaramos un iterador para un vector con una nueva variable «it». Entonces la variable «it» tiene una función de inicio y final para indicar los elementos de los vectores. #incluir #incluir utilizando el espacio de nombres std;int main() { vector v; v push_back (10); v push_back (20); v push_back (30); v push_back (40); v push_back (50); for(vector::iterator it = v.begin(); it != v.end(); it++) { cout<< *it <
El programa anterior da la salida como esta.

Ejemplo 3: Programa para implementar una matriz de longitud variable en C++ usando std::vector

Los vectores se utilizan para transportar tipos de datos comparables en C++. A diferencia de las matrices, el tamaño de un vector puede crecer dinámicamente. Podemos ajustar el tamaño del vector según sea necesario durante la ejecución del programa. El archivo de encabezado de vector debe estar incluido en nuestro programa para usar vectores. Una vez que la biblioteca de vectores se incluye en el archivo de encabezado, podemos usar vector como std::vector en el programa. Después de incluir la biblioteca de vectores anterior, llamamos al std::vector en la función principal del programa. El vector se declara como «números» y se inicializa con los cinco valores de números aleatorios. Se vuelve a definir la variable «Número», que tiene tres elementos vectoriales del contenedor de vectores especificado anteriormente. El std::cout se usa para mostrar la longitud del vector dentro de la variable numérica usando la función de tamaño. #incluir #incluir int main(){ std::números vectoriales = {10, 20, 30, 40, 50}; Números = {30, 40, 50}; std::cout<< "Longitud del arreglo: " <

La salida muestra la longitud de la matriz de vectores especificada de la siguiente manera.

Conclusión

¡Resumir! Aquí tenemos una discusión detallada de las matrices de longitud variable en la introducción. Así es como aprendimos que C++ no permite arreglos de longitud variable (VLA). Anteriormente hemos dado algunas formas de implementar arreglos de longitud variable en C++ y formas alternativas de arreglos de longitud variable. Estos pueden resultar útiles al interactuar con matrices de longitud variable en C++.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.