Vector
2014-01-Semana 2
“
Logro de la sesión
Al finalizar la sesión, el estudiante
aprenderá:
▸ Las características de un vector
▸ Operaciones vectoriales típicas
2
Vector
▸ Es un tipo de dato, declarado en la
librería estándar de C++, que permite
almacenar una colección de datos del
mismo tipo.
▸ Permite acceder a los elementos del
contenedor vector usando un índice y
el operador de indexación [].
▸ Los elementos son almacenados en
posiciones contiguas en memoria
Vector
▸ Para utilizar vector debemos
#include <vector>
using namespace std;
▸ Definición de una variable del tipo vector
vector<int> vector_enteros; // Vector de enteros
vector<string> vector_palabras; // Vector de cadena
4
Vector
end()
pop_back()
push_back()
1 2 3 4 5 6
begin()
size()
5
Vector: Principales funciones
▸ Iteradores: objetos que apuntan a una ubicación. Se utiliza para
iterar sobre elementos del contenedor, en nuestro caso un vector.
▸ begin(): se utiliza para obtener el iterador que apunta al primer
elemento de un vector
▸ end(): se utiliza para obtener el iterador que apunta al final del
vector
▸ pop_back(): Elimina el último elemento de un vector
▸ push_back(): Agrega un nuevo elemento al final del vector
▸ erase(): Elimina del vector un solo elemento ( posición ) o un rango
de elementos ( [primero, último) )
▸ insert(): Inserta nuevos elementos antes del elemento en la 6
posición especificada
▸ size(): da el número de elementos del vector
Vector: Entendiendo las posiciones
0 1 2 3 4 5 índices
1 2 3 4 5 6
begin() begin() + 3 end() - 1 end()
▸ Se puede sumar a begin() y restar a end() para apuntar a alguna
ubicación
▸ Se puede acceder a los elementos de un vector por los índices
▸ En los ejemplos mostraremos otras formas de acceder a los
elementos de un vector
Ordenar un vector
▸ Sort
▸ Para emplear el sort debemos incluir la siguiente biblioteca:
• #include “algorithm”
▸ La sintaxis es la siguiente:
• sort(mi_vector.begin(), mi_vector.end(), funcion_comparar);
▸ La función de comparación: Una función de comparación puede ser
la siguiente:
bool funcion_comparar(tipo_dato a, tipo_dato b)
{ return (a > b); }
8
// intente con < , ==
Ejemplo 1
▸ Desarrollar un programa en C++ que crea un vector, inicialmente
con los valores 1, 2, 3, 4, 5 y mostrar el vector inicial
▸ Insertar el valor 10 al inicio del vector
▸ Luego adicionarle los valores 7, 8, 9 al final del vector y mostrar el
vector
▸ Insertar el valor 6 después del valor 5 y mostrar
▸ Ordenar le vector de manera descendente y mostrar el vector
▸ Ordenarlo de forma descendente y mostrar el vector
Ejemplo 1
#include <iostream> // Valor 6 después del valor 5 y mostrar
#include <vector> [Link]([Link]() + 6, 6);
#include <conio.h> cout << "\n\nCon el valor 6: ";
#include "algorithm" impVector(vec);
using namespace std;
// Ordenar el vector ascendente
void impVector(vector<int> v) { sort([Link](), [Link]());
for (int i = 0; i < [Link](); ++i){ cout << " " << cout << "\n\nOrdenado de forma ascendente: ";
v[i]; } impVector(vec);
}
// Ordenar el vector descendente
bool funcion_comparar(int a, int b) { return (a > b); } sort([Link](), [Link](), funcion_comparar);
cout << "\n\nOrdenado de forma descendente: ";
int main() impVector(vec);
{
vector<int> vec{1, 2, 3, 4, 5}; _getch();
return 0;
cout << "Vector inicial: "; }
impVector(vec);
// Insertar el valor 10 al inicio
[Link]([Link](), 10);
cout << "\n\nCon el 10 adicionado: ";
impVector(vec);
// Adiciona 7, 8, 9 al final del vector
vec.push_back(7);
vec.push_back(8);
vec.push_back(9);
cout << "\n\nCon los valores 7, 8, 9: ";
impVector(vec);
Ejemplo 1. Otra forma de recorrer el vector
#include <iostream> // Valor 6 después del valor 5 y mostrar
#include <vector> [Link]([Link]() + 6, 6);
#include <conio.h> cout << "\n\nCon el valor 6: ";
#include "algorithm" impVector(vec);
using namespace std;
// Ordenar el vector ascendente
void impVector(vector<int> v) { sort([Link](), [Link]());
for (int valor : v) { cout << " " << valor; } cout << "\n\nOrdenado de forma ascendente: ";
} impVector(vec);
bool funcion_comparar(int a, int b) { return (a > b); } // Ordenar el vector descendente
sort([Link](), [Link](), funcion_comparar);
int main() cout << "\n\nOrdenado de forma descendente: ";
{ impVector(vec);
vector<int> vec{1, 2, 3, 4, 5};
_getch();
cout << "Vector inicial: "; return 0;
impVector(vec); }
// Insertar el valor 10 al inicio
[Link]([Link](), 10); La función para imprimir el vector ahora
cout << "\n\nCon el 10 adicionado: ";
impVector(vec); presenta otra manera de recorrer el vector
for (int valor : v)
// Adiciona 7, 8, 9 al final del vector { cout << " " << valor; }
vec.push_back(7);
vec.push_back(8); Funciona de la siguiente manera:
vec.push_back(9); La variable valor debe ser del tipo de los
cout << "\n\nCon los valores 7, 8, 9: "; elementos del vector, para el caso int. Uno a
impVector(vec);
uno los elementos del vector se copian en la
variable valor la cual se imprime en la pantalla
Finaliza cuando termina de recorrer el vector
Ejemplo 2
▸ Desarrollar un programa en C++ que crea un vector, inicialmente
con los valores 1, 2, 3, 4, 5, 7, 8, 9 y mostrar el vector inicial
▸ Eliminar el valor 5
▸ Eliminar el último elemento
▸ Eliminar el primer elemento
▸ Eliminar el valor 4
Ejemplo 2 #include <iostream>
#include <vector>
#include <conio.h>
using namespace std;
void impVector(vector<int> v) {
for (int valor : v) { cout << " " << valor; }
}
int main()
{
vector<int> vec{1, 2, 3, 4, 5, 6, 7, 8, 9};
cout << "Vector inicial: ";
impVector(vec);
// Eliminar el valor 5
[Link]([Link]() + 4);
cout << "\n\nCon el valor 5 eliminado: ";
impVector(vec);
// Elimina el último
vec.pop_back();
cout << "\n\nEliminado el ultimo: ";
impVector(vec);
// Eliminar el primero
[Link]([Link]());
cout << "\n\nEliminado el primero: ";
impVector(vec);
// Eliminar el valor 4
[Link]([Link]() + 2);
cout << "\n\nEliminado el valor 4: ";
impVector(vec);
_getch();
return 0;
}