No se puede incluir ningún elemento frente a la matriz. Con C ++ 17 y superior, se puede incluir un elemento frente al vector utilizando la función miembro emplace ().
Para el resto de este artículo, se ilustran las diferencias entre el vector y la matriz. Para cada punto, se menciona la incapacidad de la matriz, o se da su forma roma o engorrosa de lograr el mismo objetivo.
Contenido del artículo
Creación de un vector o matriz
Se puede crear un vector de varias maneras. La forma básica es la siguiente:
vectorEn consecuencia, se crearía una matriz de la siguiente manera:
char arr [] = 'a', 'b', 'c', 'd', 'e';Tenga en cuenta la diferencia en los operandos que están a la izquierda del operador de asignación. El número de elementos para el vector se puede agregar o reducir, pero el tamaño de la matriz permanece fijo, a las 5 en este caso.
Para tener y usar un vector en un programa, el programa debe comenzar con:
#incluirPara tener y usar una matriz en un programa, no se necesita ninguna Directiva del preprocesador.
Tamaño creciente
El siguiente código muestra cómo un vector de dos elementos inicialmente se incrementa a cuatro elementos, utilizando su función miembro push_back ():
vectorEste código debe estar en un cuerpo de funciones. Para la matriz, y dado que la matriz tiene un tamaño fijo, cree una matriz para el número máximo de elementos previstos, antes de agregar los elementos utilizando el operador []. Ejemplo:
char arr [4];Además, este código debe estar dentro de un cuerpo de funciones.
Inserción
En el siguiente código, se inserta un elemento frente al elemento apuntado por el iterador, P:
vectorvtr = 'a', 'b', 'd', 'e';La salida es:
A B C D ELa primera declaración del código crea el objeto vectorial. 'C', que debería haber estado frente a 'D' por orden alfabético, está ausente aquí. La segunda declaración devuelve un iterador que apunta al primer elemento del vector. Las siguientes dos declaraciones incrementan el puntero para señalar 'D'. La declaración después de asignar 'C' a CH. En ese segmento de código, la última declaración inserta 'c' frente a 'd', usando el iterador.
En cuanto a la matriz, no hay forma de insertar un elemento. Debido a limitaciones como esta para la matriz, se diseñaron el vector y otros contenedores.
NOTA: La función de miembro insert () también se puede usar para insertar un elemento frente a un vector.
Anexo
Agregar significa agregar elementos en la parte posterior. La función miembro push_back () se puede usar para agregar elementos en la parte posterior del vector - ver arriba. La matriz no se puede agregar a. La única forma de solucionar este problema para la matriz es crear una matriz para el tamaño máximo previsto. Poner elementos desde el principio. Luego se dejará algo de espacio (celdas) en la matriz. Entonces, si hay alguna necesidad de agregar elementos en la parte posterior, ajuste los elementos (valores) en los espacios detrás de que están vacíos (que tienen valores predeterminados).
Borrando un elemento
Para el vector, se puede borrar un elemento utilizando el iterador. El iterador luego señalará el siguiente elemento, que estaba allí antes de que se produjera el borrado. El siguiente código borra 'B':
vectorvtr = 'a', 'b', 'c', 'd', 'e';No se puede borrar ningún elemento de la matriz, aunque se puede cambiar.
Claro
Se pueden eliminar todos los elementos del vector, con su función miembro clara (), como sigue:
vectorvtr = 'a', 'b', 'c', 'd', 'e';La salida no es nada. Lo mejor que hay que ver con la matriz es reemplazar todos los elementos con algún valor predeterminado. Con el entero, el valor predeterminado es 0. El siguiente código ilustra:
int arr [] = 1, 2, 3, 4, 5;La salida es:
0 0 0 0 0Con el carácter, el valor predeterminado es el carácter nul, \ 0. El siguiente código ilustra:
char arr [] = 'a', 'b', 'c', 'd', 'e';La salida no muestra nada.
Intercambio
Incluso si dos vectores no son del mismo tamaño, sus elementos se pueden intercambiar, con la función miembro swap (). El siguiente código muestra esto:
vector vtr1 = 'a', 'b', 'c', 'd', 'e';Para que se intercambien dos matrices, deben tener la misma longitud. La matriz no tiene funciones de miembros (sin métodos). Entonces, para intercambiar elementos para matrices, se debe escribir un código de la siguiente manera:
char arr1 [] = 'a', 'b', 'c', 'd', 'e';La salida es:
Contenido de nuevo ARR1:Tamaño
El tamaño del vector es devuelto por su función miembro, size (). Es decir, se determina en tiempo de ejecución. Ilustración:
vectorvtr = 'a', 'b', 'c', 'd';También se puede hacer así:
char arr [7] = 'a', 'b', 'c', 'd';Es decir, poner un número (tamaño) que es más alto que el supuesto tamaño (de 4 en este caso). Sin embargo, el número no debe ser menor que el número de elementos iniciales.
Matriz de longitud variable
Sin embargo, el tamaño de la matriz puede administrarse (no determinado) en tiempo de ejecución. En este caso, la matriz deberá crearse en una función o en una construcción similar. El siguiente programa ilustra esto:
#incluirLa salida es:
A B C DConclusión
Las principales diferencias entre el vector y la matriz son las siguientes: el tamaño (longitud) de un vector se puede aumentar naturalmente, pero el de una matriz se fija y no se puede aumentar. Los elementos se pueden insertar dentro de un vector, pero no se pueden insertar dentro de una matriz. Los elementos se pueden agregar al final del vector, pero no se pueden agregar al final de la matriz. El vector es una clase de la que se instancian otros objetos vectoriales, pero la matriz es un puntero constante a una secuencia de datos del mismo tipo. El vector tiene métodos (funciones miembros), pero la matriz no lo hace, por lo que el vector se denomina estructura de datos. Mientras que el puntero se puede usar con la matriz, los iteradores se usan con el vector. Un iterador es un puntero elaborado. La matriz muestra su incapacidad o tiene una forma contundente o engorrosa de lograr el mismo objetivo para cada diferencia.