¿Cuáles son las diferencias entre una matriz y un vector en C ++? Un ejemplo de las diferencias podría incluir bibliotecas, simbolismo, habilidades, etc.
Formación
Las matrices contienen un número específico de elementos de un tipo particular. Para que el compilador pueda reservar la cantidad de espacio requerida cuando se compila el programa, debe especificar el tipo y número de elementos que contendrá la matriz cuando se defina. El compilador debe poder determinar este valor cuando se compila el programa. Una vez que se ha definido una matriz, usa el identificador de la matriz junto con un índice para acceder a elementos específicos de la matriz. las [...] matrices tienen un índice cero; es decir, el primer elemento está en el índice 0. Este esquema de indexación es indicativo de la estrecha relación en C ++ entre punteros y matrices y las reglas que el lenguaje define para la aritmética de punteros.
- Referencia de bolsillo de C ++
Vector
Un vector es una secuencia de objetos de tamaño dinámico que proporciona
operator[]
acceso aleatorio al estilo de una matriz . La función miembropush_back
copia sus argumentos a través del constructor de copia, agrega esa copia como el último elemento en el vector e incrementa su tamaño en uno.pop_back
hace exactamente lo contrario, eliminando el último elemento. Insertar o eliminar elementos del final de un vector requiere un tiempo constante amortizado, y insertar o eliminar desde cualquier otra ubicación toma un tiempo lineal. Estos son los conceptos básicos de los vectores. Hay mucho más para ellos. En la mayoría de los casos, un vector debería ser su primera opción sobre una matriz de estilo C. En primer lugar, tienen un tamaño dinámico, lo que significa que pueden crecer según sea necesario. No tiene que hacer todo tipo de investigación para averiguar un tamaño estático óptimo, como en el caso de las matrices C; un vector crece según sea necesario y se puede cambiar de tamaño más grande o más pequeño manualmente si es necesario. En segundo lugar, los vectores ofrecen la comprobación de límites con laat
función miembro (pero no conoperator[]
), de modo que pueda hacer algo si hace referencia a un índice inexistente en lugar de simplemente ver cómo se bloquea el programa o, peor aún, continuar la ejecución con datos corruptos.- Libro de cocina C ++