Vectores en C++ (vector )
Un tipo de matriz dinámica en C++ es vector (vector) .
Vector (vector ) — es una estructura de datos que ya es un modelo de una matriz dinámica.
Los arreglos ordinarios en C++ no tienen funciones ni métodos especiales para trabajar con ellos. Los vectores en C++ son estructuras de datos que contienen más funciones adicionales para trabajar con elementos.
Crear un vector
#incluye <vector>
...
int principal()
{
// declaración del vector entero v para 10 elementos
vector <int> v(10);
// igual con cero valores iniciales (vector v1)
vector <int> v1(10, 0);
...
Relleno vectorial
Método 1
Asignamos memoria para el n -ésimo número de elementos y los completamos leyéndolos desde el teclado.
interno;
cin>> norte;
vector a(n);
para (int i = 0; i < n; i++)
cin>> a[i];
Método 2
El segundo método es necesario cuando se desconoce el número de elementos. Primero, se crea un vector vacío y luego, utilizando el método push_back() , se agrega un nuevo elemento al final del vector.
interno;
cin>> norte;
vectora;
para (int i = 0; i < n; i++) {
intb;
cin>> b;
a.push_back(b);
}
Tamaño del vector
int b = a.tamaño();
|
Iteradores
Una forma de iterar sobre elementos en contenedores (estructuras de datos) es el iterador ( iterator code>), que vienen en varios tipos.
Iterador - estructura de datos que « indica» ; en algún elemento contenedor y (para algunos contenedores) puede navegar al elemento anterior/siguiente.
El vector utiliza el más poderoso - iterador de acceso aleatorio(Iterador de acceso aleatorio ). Un iterador de acceso aleatorio puede acceder a un elemento arbitrario del vector además del movimiento secuencial.
Los beneficios de los iteradores
1) Al eliminar elementos e iterar sobre elementos usando índices ([] ), debemos realizar un seguimiento de la cantidad de elementos restantes todo el tiempo para no ir más allá del vector, y al usar un iterador, usted puede usar end()< /code> indicando el final del vector.
2) Con un iterador, puede eliminar e insertar fácilmente elementos de forma dinámica en un vector.
Declaración de iterador
1) Declarar un iterador para un vector entero y apuntarlo al primer elemento en el vector.
vector <int> mivector = { 1, 2, 3, 4, 5 };
vector <int>::iterator it = myvector.begin();
2) Declarar un iterador para un vector entero y apuntarlo al elemento después del último en el vector.
vector <int> mivector = { 1, 2, 3, 4, 5 };
vector <int>::iterator it = myvector.end(); // apunta al elemento después del último,
vector <int>::iterator it1 = myvector.end() - 1 ; // apuntando al último elemento.
Obtener y mostrar un valor
Obtener y mostrar el elemento señalado por el iterador.
cout << *eso;
Mover la posición del iterador
Mueva la posición del iterador 3 posiciones hacia adelante.
avanzar(it, 3);
Crear un nuevo iterador a partir de uno existente
Cree un nuevo iterador basado en uno existente, avanzando 3 posiciones.
automático it1 = siguiente(it, 3);
Mostrar valores vectoriales usando un iterador
vector<int>::iterador it;
for (it = myvector.begin(); it != myvector.end(); ++it) {
cout<<*it<<" ";
}
Recorrido vectorial
Para recorrer el vector desde el último elemento hasta el primero, se utiliza un iterador inverso reverse_iterator , se obtiene mediante:
1) rbegin() - devuelve un iterador inverso que apunta al último elemento del vector, la aplicación de la operación ++ conduce a la transición al elemento anterior;
2) rend() - devuelve un iterador inverso que apunta al elemento anterior del vector, la aplicación de la operación ++ conduce a la transición al siguiente
vector<int>::reverse_iterator it = myvector.rbegin(); // apunta al último elemento
vector<int>::reverse_iterator it = myvector.rend(); // apunta a un elemento,
// que viene antes del primero,
|