Las funciones de miembros del vector C ++ se pueden colocar en las siguientes categorías: construcción, capacidad, iteradores, acceso de elementos y modificadores. Cada una de estas categorías tiene muchas funciones. Todas estas funciones no se utilizan en muchas aplicaciones. Este artículo explica la más útil de estas funciones. Con la excepción de la categoría de modificadores, no se explican más de tres funciones para cada categoría en este artículo. La categoría de modificadores se puede dividir en más subcategorías. En cada una de estas subcategorías, no se explicarán más de tres funciones. Si se explicarán más de tres funciones para una categoría determinada, entonces se les enseñará a modo de ilustración.
Un programa para usar C ++ Vector debe comenzar con,
#incluir
#incluir
Contenido del artículo
Construcción/destrucción
Los siguientes segmentos de código muestran diferentes formas de crear el mismo vector:
vectorVTR;
VTR.push_back (5.5);
VTR.push_back (6.6);
VTR.push_back (7.7);
VTR.push_back (8.8);
VTR.push_back (9.9);
vectorVTR (3); // con número inicial de elementos
VTR [0] = 5.5;
VTR [1] = 6.6;
VTR [2] = 7.7;
vectorVTR (5, 0.0); //No. Elementos: 5; Cada valor: 0.0
vectorVTR 5.5, 6.6, 7.7, 8.8, 9.9; // Inicialización
vectorvtr = 5.5, 6.6, 7.7, 8.8, 9.9; // Construyendo y copiando
vectorVTR;
vtr = 5.5, 6.6, 7.7, 8.8, 9.9;
vectorVTR1 5.5, 6.6, 7.7, 8.8, 9.9;
vectorVTR2 (VTR1);
vector constantevtr = 5.5, 6.6, 7.7, 8.8, 9.9;
A vector constante es un vector cuyos elementos no se pueden cambiar. Los valores son de solo lectura.
Destrucción
Para destruir un vector, solo déjelo salir del alcance.
Capacidad
size () const noexcept
El número de elementos en un vector es devuelto por esta función de miembro. Con el siguiente segmento de código, la salida es 5:
vectorvtr = 5.5, 6.6, 7.7, 8.8, 9.9;
flotante sz = vtr.tamaño();
cout << sz << '\n';
vacía () const noexcept
Este método devuelve verdadero (1) si el vector no tiene elemento y falso (0) si el vector tiene al menos un elemento. Con el siguiente código, la salida es 1 (para verdadero):
vectorvtr = ;
bool bl = vtr.vacío();
cout << bl << '\n';
Acceso iterador y vectorial
Un iterador es un puntero elaborado. Cuando el vector, VTR Ha sido creado, VTR.comenzar() devolvería un iterador, señalando el primer elemento de la lista. Luego se puede incrementarse para acceder a los elementos después de los primeros, en consecuencia.
Cuando el vector, VTR Ha sido creado, VTR.fin() devolvería un iterador, señalando justo después del último elemento de la lista. Luego se puede disminuir para acceder al último elemento y elementos antes del último, en consecuencia. El siguiente programa ilustra esto:
#incluir
#incluir
usando el espacio de nombres STD;
int main ()
vectorvtr = 5.5, 6.6, 7.7, 8.8, 9.9;
vector:: iterator iterb = vtr.comenzar();
iterb ++;
vector:: iterator ITere = VTR.fin();
Itere--;
cout << *iterB << ", " << *iterE << " << endl;
*iterb = 66.66; *ITERE = 99.99;
cout << *iterB << ", " << *iterE << " << endl;
regresar 0;
La salida es:
6.6, 9.9
66.66, 99.99
Los valores de dos elementos fueron accedidos, leídos y cambiados por dos iteradores.
Acceso al elemento
en (i)
Esto es similar a VTR [i], y es mejor. Se puede usar para leer o cambiar el valor de un elemento. El conteo de índice comienza desde cero. El lector puede probar el siguiente programa:
#incluir
#incluir
usando el espacio de nombres STD;
int main ()
vectorvtr = 5.5, 6.6, 7.7, 8.8, 9.9;
cout << vtr[1] << ", " << vtr[4] << " << endl;
VTR [1] = 66.66; VTR [4] = 99.99;
cout << vtr[1] << ", " << vtr[4] << " << endl;
regresar 0;
La salida es:
6.6, 9.9
66.66, 99.99
Se accedió, leí y cambió los valores de dos elementos mediante la referencia.
Devolviendo el primer valor
El siguiente código devuelve (copia) el primer elemento:
vectorvtr = 5.5, 6.6, 7.7, 8.8, 9.9;
flotante val = VTR.frente();
cout << val << endl;
La salida es, 5.5. La función miembro utilizada aquí es: front ().
Devolviendo el último valor
El siguiente código devuelve (copia) el último elemento:
vectorvtr = 5.5, 6.6, 7.7, 8.8, 9.9;
flotante val = VTR.atrás();
cout << val << endl;
La salida es, 9.9. La función miembro utilizada aquí es: back ().
Empuje hacia atrás y vuelva hacia atrás
hacer retroceder()
Se puede agregar un elemento en la parte posterior del vector. El valor puede ser literal o ser representado por el identificador. El siguiente código ilustra esto:
flotante flt = 10.10;
vectorvtr = 5.5, 6.6, 7.7, 8.8, 9.9;
VTR.push_back (flt);
para (int i = 0; icout << vtr[i] << ", ";
cout << endl;
La lista original es:
5.5, 6.6, 7.7, 8.8, 9.9
La nueva lista es:
5.5, 6.6, 7.7, 8.8, 9.9, 10.1
pop_back ()
El último elemento se puede eliminar del vector. El siguiente código ilustra esto:
vectorvtr = 5.5, 6.6, 7.7, 8.8, 9.9;
VTR.pop_back ();
para (int i = 0; icout << vtr[i] << ", ";
cout << endl;
La lista original es:
5.5, 6.6, 7.7, 8.8, 9.9
La nueva lista es:
5.5, 6.6, 7.7, 8.8
Nota: El vector no tiene funciones de miembro push_front () y pop_front ().
Inserción
Insertos frente al elemento apuntado a, por el iterador.
insertar (p, e)
Esto inserta un elemento antes de que el elemento apunte por el iterador, p. E puede ser un literal o identificador. Ilustración:
flotante flt = 7.0;
vectorvtr = 5.5, 6.6, 7.7, 8.8, 9.9;
vector:: iterator iterb = vtr.comenzar();
iterb ++; iterb ++;
VTR.insertar (iterb, flt);
para (int i = 0; icout << vtr[i] << ", ";
cout << endl;
La lista original es:
5.5, 6.6, 7.7, 8.8, 9.9
La nueva lista es:
5.5, 6.6, 7, 7.7, 8.8, 9.9
Esta función de inserción devuelve un iterador (no codificado) que apunta al elemento insertado.
Insertar (P, IL)
Se puede insertar una lista frente al elemento señalado por el iterador. Ilustración:
vectorvtr = 5.5, 6.6, 7.7, 8.8, 9.9;
vector:: iterator iterb = vtr.comenzar();
iterb = iterb + 2;
VTR.insertar (iterb, 7.1, 7.2, 7.3);
para (int i = 0; icout << vtr[i] << ", ";
cout << endl;
La lista original es:
5.5, 6.6, 7.7, 8.8, 9.9
La nueva lista es:
5.5, 6.6, 7.1, 7.2, 7.3, 7.7, 8.8, 9.9
Esta función de inserción devuelve un iterador (no codificado) que apunta al primer elemento insertado.
Insertar (P, N, T)
Inserta el mismo valor t, n veces, frente al elemento apuntado por P. Ilustración:
vectorvtr = 5.5, 6.6, 7.7, 8.8, 9.9;
vector:: iterator iterb = vtr.comenzar();
iterb = iterb + 2;
VTR.insertar (iterb, 3, 7.1);
para (int i = 0; icout << vtr[i] << ", ";
cout << endl;
La lista original es:
5.5, 6.6, 7.7, 8.8, 9.9
La nueva lista es:
5.5, 6.6, 7.1, 7.1, 7.1, 7.7, 8.8, 9.9
Esta función de inserción devuelve un iterador (no codificado) que apunta al primer elemento insertado.
insertar (p, i, j)
Se puede copiar un rango de otro vector e insertarse en el vector de interés. El siguiente código ilustra esto:
vectorvtr1 = 7.1, 7.2, 7.3, 7.4, 7.5;
vector:: iterator iterb1 = vtr1.comenzar();
iterb1 = iterb1 + 1;
vector:: iterator ITERE1 = VTR1.fin();
ITERE1 = ITERE1 - 2;
vectorvtr2 = 5.5, 6.6, 7.7, 8.8, 9.9;
vector:: iterator iterb2 = vtr2.comenzar();
iterb2 = iterb2 + 2;
VTR2.insertar (Iterb2, Iterb1, Itere1);
para (int i = 0; icout << vtr2[i] << ", ";
cout << endl;
La lista original para VTR2 es:
5.5, 6.6, 7.7, 8.8, 9.9
La nueva lista para VTR2 es:
5.5, 6.6, 7.2, 7.3, 7.7, 8.8, 9.9
El rango identificado para ser copiado es [7.2, 7.3, 7.4), indicado como [i, j), que significa el último valor, 7.4 no está incluido.
Esta función de inserción devuelve un iterador (no codificado) que apunta al primer elemento insertado.
Asignación de elementos (reemplazos)
Asignar a elementos significa reemplazar los elementos con copias. Todas las funciones de los miembros de la asignación, retorno nula.
Asignar (IL)
Una lista puede reemplazar todos los elementos en el vector en cuestión. La lista puede ser más larga o más corta. Ilustración para la lista corta:
vectorvtr = 5.5, 6.6, 7.7, 8.8, 9.9;
vector:: iterator iterb = vtr.comenzar();
iterb = iterb + 2;
VTR.asignar (55.55, 66.66, 77.77);
para (int i = 0; icout << vtr[i] << ", ";
cout << endl;
La lista original es:
5.5, 6.6, 7.7, 8.8, 9.9
La nueva lista es:
55.55, 66.66, 77.77
Ilustración para una lista más larga:
vectorvtr = 5.5, 6.6, 7.7, 8.8, 9.9;
vector:: iterator iterb = vtr.comenzar();
iterb = iterb + 2;
VTR.asignar (55.55, 66.66, 77.77, 88.88, 99.99, 1010.1111);
para (int i = 0; icout << vtr[i] << ", ";
cout << endl;
La lista original es:
5.5, 6.6, 7.7, 8.8, 9.9
La nueva lista es:
55.55, 66.66, 77.77, 88.88, 99.99, 1010.11
Asignar (n, t)
El mismo valor, repetido varias veces, puede reemplazar todos los elementos en el vector en cuestión. La nueva lista puede ser más larga o más corta. Ilustración para la lista corta:
vectorvtr = 5.5, 6.6, 7.7, 8.8, 9.9;
vector:: iterator iterb = vtr.comenzar();
iterb = iterb + 2;
VTR.Asignar (2, 77.77);
para (int i = 0; icout << vtr[i] << ", ";
cout << endl;
La lista original es:
5.5, 6.6, 7.7, 8.8, 9.9
La nueva lista es:
77.77, 77.77
Asignar (i, j)
Se puede copiar un rango de otro vector y usarse para reemplazar todo el contenido del vector de interés. El siguiente código ilustra esto:
vectorvtr1 = 7.1, 7.2, 7.3, 7.4, 7.5;
vector:: iterator iterb1 = vtr1.comenzar();
iterb1 = iterb1 + 1;
vector:: iterator ITERE1 = VTR1.fin();
ITERE1 = ITERE1 - 2;
vectorvtr2 = 5.5, 6.6, 7.7, 8.8, 9.9;
vector:: iterator iterb2 = vtr2.comenzar();
iterb2 = iterb2 + 2;
VTR2.asignar (iterb1, itere1);
para (int i = 0; icout << vtr2[i] << ", ";
cout << endl;
La lista original para VTR2 es:
5.5, 6.6, 7.7, 8.8, 9.9
La nueva lista para VTR2 es:
7.2, 7.3
El rango identificado para ser copiado es [7.2, 7.3, 7.4), indicado como [i, j), que significa el último valor, 7.4 no está incluido.
Borrar
Usa iterador.
borrar (Q)
Elimina el elemento apuntado por Q, acortando la longitud del vector. Devuelve el iterador apuntando al siguiente elemento, después de la extracción. Ejemplo:
vectorvtr = 5.5, 6.6, 7.7, 8.8, 9.9;
vector:: iterator iterb = vtr.comenzar();
iterb = iterb + 2;
vector:: iterator ITR = VTR.borrar (iterb);
para (int i = 0; icout << vtr[i] << ", ";
cout << endl;
cout << *itR << endl;
La lista original es:
5.5, 6.6, 7.7, 8.8, 9.9
La salida es:
5.5, 6.6, 8.8, 9.9,
8.8
borrar (Q1, Q2)
Elimina un rango de elementos que comienzan desde el señalado por el iterador Q1, a la señal de Q2, pero excluyendo el de Q2, es decir, elimina [Q1, Q2). Devuelve el iterador apuntando al siguiente elemento, después de la eliminación del rango. Ilustración:
vectorvtr = 5.5, 6.6, 7.7, 8.8, 9.9;
vector:: iterator iterb = vtr.comenzar();
iterb = iterb + 2;
vector:: iterator ITere = VTR.fin();
ITERE = ITERE - 1;
vector:: iterator ITR = VTR.borrar (iterb, Itere);
para (int i = 0; icout << vtr[i] << ", ";
cout << endl;
cout << *itR << endl;
La lista original es:
5.5, 6.6, 7.7, 8.8, 9.9
La salida es:
5.5, 6.6, 9.9,
9.9
Claro
claro()
Devuelve nulo. Se pueden eliminar todos los elementos en un vector, reduciendo la longitud del vector a cero. Así es como:
vectorvtr = 5.5, 6.6, 7.7, 8.8, 9.9;
VTR.claro();
cout << vtr.size() << endl;
La lista original es:
5.5, 6.6, 7.7, 8.8, 9.9
La salida es:
0
Intercambio
X.intercambio (y)
Los elementos de dos vectores diferentes se pueden cambiar, independientemente de sus diferentes longitudes. Ilustración:
vectorvtr1 = 1.1, 2.2, 3.3, 4.4;
vectorvtr2 = 5.5, 6.6, 7.7, 8.8, 9.9;
VTR2.intercambio (VTR1);
cout << "New vtr1: ";
para (int i = 0; icout << vtr1[i] << ", ";
cout << endl;
cout << "New vtr2: ";
para (int i = 0; icout << vtr2[i] << ", ";
cout << endl;
La salida es:
Nuevo VTR1: 5.5, 6.6, 7.7, 8.8, 9.9,
Nuevo VTR2: 1.1, 2.2, 3.3, 4.4,
Conclusión
C ++ Vector tiene muchas funciones de miembros. Estas funciones se pueden clasificar en las siguientes subcategorías: construcción/destrucción, capacidad, acceso iterador y vectorial, acceso de elementos, retroceder y hacer retroceder, insertar, asignar elementos (reemplazos), borrar, despejar y intercambiar. Las funciones más útiles en cada una de estas subcategorías se han explicado anteriormente.