Cuando empezamos a aprender sobre vectores de objetos en C++ una de las principales tareas que debemos realizar es la de aprender sus operaciones básicas, en esta entrada trataremos algunas operaciones de acceso, inserción, tamaño y eliminación en vectores.
Operaciones Básicas:
vector.push_back(objeto)vector.size()vector.pop_back()vector.empty()vector.front()vector.back()
vector.push_back(objeto):
Añade un elemento al final del vector, en este caso un objeto el cual pasaremos por parámetro. Sí el vector está vacío el objeto obtendrá la posición 0, sí insertamos un nuevo objeto este se colocará al final del vector en la posición 1 y así sucesivamente...
vector.size():
Nos retornará el tamaño del vector, es decir, la cantidad de elementos que este posee. Siguiendo el ejemplo anterior, sí usamos la funcion size del vector nos retornará el valor 2, puesto que hemos insertado 2 objetos al vector. El tamaño del vector será modificado por operaciones de inserción (push_back) o de eliminación (pop_back) la cual la describiremos más adelante. Sí el vector no tiene elementos entonces retornará el valor 0. Es importante destacar que el máximo indice del vector viene dado por vector.size() - 1, siguiendo nuestro ejemplo el tamaño del vector es 2, pero el mayor indice es 1, esto es importante saberlo al momento de utilizar ciclos for para recorrer los vectores.
vector.pop_back():
Eliminará el último elemento añadido al vector y disminuirá el tamaño del mismo, es obvio que sí el vector se encuentra vacío ( vector.empty() ) el método pop_back no puede ser utilizado.
vector.empty():
Nos retornará un valor booleano (true o false) indicándonos sí el vector se encuentra vacío o no, es decir, sí posee o no elementos.
vector.front():
Nos retornará el primer elemento añadido al vector. Sí ingresamos las personas Francisco, luego a Jose y por ultimo a María, este método nos retornará el objeto cuyo atributo nombre es Francisco.
vector.back():
Nos retornará el último elemento añadido al vector. Sí ingresamos las personas Francisco, luego a Jose y por ultimo a María, este método nos retornará el objeto cuyo atributo nombre es María.
Veamos estos métodos programados en C++:
Realicemos un programa en C++ que tenga un menú con las siguientes opciones:
- Incluir un objeto en el vector
- Saber el tamaño del vector
- Borrar el ultimo objeto incluido en el vector
- Saber cual fue el primer objeto incluido en el vector
- Saber cual fue el ultimo objeto incluido en el vector
- Salir
operaciones.cpp
#include <iostream>#include <vector>#include "Persona.h"usingnamespace std;
intmain(){
vector<Persona> Vec_Persona;
Persona ObjetoPersona;
int opcion;
//Variables a usar en los métodos de inserción
string nombre, cedula;
int edad;
//////////////////////////////////////////////do{
cout << "\n\n=========OPERACIONES BASICAS CON VECTORES==========\n";
cout << "==============Menu de opciones ====================\n";
cout << "1 Incluir un objeto en el vector \n";
cout << "2 Saber el tamaño del vector \n";
cout << "3 Borrar el ultimo objeto incluido en el vector \n";
cout << "4 Saber cual fue el primer objeto incluido en el vector \n";
cout << "5 Saber cual fue el ultimo objeto incluido en el vector \n";
cout << "6 Salir \n";
cin >> opcion;
switch(opcion){
case1:
cout << "Ingrese el nombre de la persona: \n";
cin >> nombre;
ObjetoPersona.SetNombre(nombre);
cout << "Ingrese la cedula de la persona: \n";
cin >> cedula;
ObjetoPersona.SetCedula(cedula);
cout << "Ingrese la edad de la persona: \n";
cin >> edad;
ObjetoPersona.SetEdad(edad);
Vec_Persona.push_back(ObjetoPersona);
break;
case2:
cout << "El vector contiene: " << Vec_Persona.size() << " objetos en total \n";
break;
case3:
if(Vec_Persona.empty()) //La funcion empty nos indica mediante un valor booleano true o false si el vector esta vacio o no
cout << "No se pueden eliminar objetos por que el vector esta vacio \n";
else{
cout << "Se ha eliminado a " << Vec_Persona[Vec_Persona.size() - 1].GetNombre() << endl;
Vec_Persona.pop_back();
}
break;
case4:
if(Vec_Persona.empty())
cout << "Ingrese un objeto antes de elegir esta opcion \n";
else
cout << "El primer objeto agregado es: " << Vec_Persona.front().GetNombre() << endl;
break;
case5:
if(Vec_Persona.empty())
cout << "Ingrese un objeto antes de elegir esta opcion \n";
else
cout << "El último objeto incluido es: " << Vec_Persona.back().GetNombre() << endl;
break;
}
}while(opcion != 6);
}
Explicación:
Creamos un vector de tipo persona (la clase persona utilizada en este tutorial se encuentra al final de la entrada, además del enlace de descarga de la carpeta del proyecto en C++) e instanciamos un objeto del tipo persona, junto a esto declaramos las variables necesarias para darle estado al objeto persona y elegir una opción del menú.Incluir un objeto en el vector:
Leemos el nombre, cédula y edad de la persona, por cada lectura seteamos el valor en el objeto para darle estado al mismo, una vez hecho esto insertamos el objeto en el vector haciendo uso del metodo push_back, pasando como parámetro el objeto al que le acabamos de dar un estado.
Saber el tamaño del vector:
Mostraremos un mensaje por pantalla el cual nos indicará el tamaño del vector, en este caso la cantidad de objetos de tipo personas que posee el vector.
Borrar el ultimo objeto incluido en el vector:
Eliminará el último objeto de tipo persona incluido en el vector, hacemos una comprobación usando el método empty para saber sí el vector posee o no elementos, puesto que no se podrían eliminar elementos que no existen. Sí existe uno o más objetos de tipo persona nos mostrará el nombre de la persona que eliminó y ejecutará el método pop_back para finalmente eliminarla. Para mostrar el nombre de la persona eliminada debemos acceder al vector mediante la posición "vector.size() - 1", recordando lo anteriormente mencionado, el mayor indice del vector es el tamaño del mismo -1, puesto que las posiciones o índices de los vectores empiezan en 0. La instrucción para mostrar el nombre sería Vec_Persona[Vec_Persona.size() - 1].GetNombre() donde mostrará el nombre ( GetNombre() ) de la persona que se encuentra en el vector ubicada en la posición Vec_Persona.size() - 1.
Saber cual fue el primer objeto incluido en el vector:
Para esta opción también comprobaremos sí el vector posee o no elementos, es claro que no podemos obtener un primer elemento sí no existe al menos uno. Sí existe uno o más elementos nos mostrará por pantalla el nombre de la primera persona incluida.
Saber cual fue el ultimo objeto incluido en el vector:
Similar a la descrita anteriormente. Sí existe uno o más elementos nos mostrará por pantalla el nombre de la última persona incluida.
Veamos la ejecución del programa:
=========OPERACIONES BASICAS CON VECTORES========================Menu de opciones ====================1 Incluir un objeto en el vector 2 Saber el tamaño del vector 3 Borrar el ultimo objeto incluido en el vector 4 Saber cual fue el primer objeto incluido en el vector 5 Saber cual fue el ultimo objeto incluido en el vector 6 Salir 2El vector contiene: 0 objetos en total
Opción escogida 2: Como el vector aún no posee elementos su tamaño es 0.
=========OPERACIONES BASICAS CON VECTORES========================Menu de opciones ====================1 Incluir un objeto en el vector 2 Saber el tamaño del vector 3 Borrar el ultimo objeto incluido en el vector 4 Saber cual fue el primer objeto incluido en el vector 5 Saber cual fue el ultimo objeto incluido en el vector 6 Salir 3No se pueden eliminar objetos por que el vector esta vacio
Opción escogida 3: Como el vector aún no posee elementos no puede ejecutarse la eliminación.
=========OPERACIONES BASICAS CON VECTORES========================Menu de opciones ====================1 Incluir un objeto en el vector 2 Saber el tamaño del vector 3 Borrar el ultimo objeto incluido en el vector 4 Saber cual fue el primer objeto incluido en el vector 5 Saber cual fue el ultimo objeto incluido en el vector 6 Salir 4Ingrese un objeto antes de elegir esta opcion
Opción escogida 4:Como el vector aún no posee elementos no podemos determinar aún cual ha sido el primer objeto incluido en el vector.
=========OPERACIONES BASICAS CON VECTORES========================Menu de opciones ====================1 Incluir un objeto en el vector 2 Saber el tamaño del vector 3 Borrar el ultimo objeto incluido en el vector 4 Saber cual fue el primer objeto incluido en el vector 5 Saber cual fue el ultimo objeto incluido en el vector 6 Salir 1Ingrese el nombre de la persona: FranIngrese la cedula de la persona: 1234567Ingrese la edad de la persona: 21
Opción escogida 1: Para incluir un objeto de tipo persona en el vector ingresaremos los atributos de la persona (Nombre, Cedula y edad) a través del teclado.
=========OPERACIONES BASICAS CON VECTORES========================Menu de opciones ====================1 Incluir un objeto en el vector 2 Saber el tamaño del vector 3 Borrar el ultimo objeto incluido en el vector 4 Saber cual fue el primer objeto incluido en el vector 5 Saber cual fue el ultimo objeto incluido en el vector 6 Salir 2El vector contiene: 1 objetos en total
Opción escogida 2: Como hemos ingresado una persona ahora el tamaño del vector es 1, es decir, posee 1 elemento.
=========OPERACIONES BASICAS CON VECTORES========================Menu de opciones ====================1 Incluir un objeto en el vector 2 Saber el tamaño del vector 3 Borrar el ultimo objeto incluido en el vector 4 Saber cual fue el primer objeto incluido en el vector 5 Saber cual fue el ultimo objeto incluido en el vector 6 Salir 1Ingrese el nombre de la persona: JoseIngrese la cedula de la persona: 23445678Ingrese la edad de la persona: 45
Opción escogida 1: Nuevamente, para incluir un objeto de tipo persona en el vector ingresaremos los atributos de la persona (Nombre, Cedula y edad) a través del teclado.
=========OPERACIONES BASICAS CON VECTORES========================Menu de opciones ====================1 Incluir un objeto en el vector 2 Saber el tamaño del vector 3 Borrar el ultimo objeto incluido en el vector 4 Saber cual fue el primer objeto incluido en el vector 5 Saber cual fue el ultimo objeto incluido en el vector 6 Salir 2El vector contiene: 2 objetos en total
Opción escogida 2: Como hemos ingresado una segunda persona ahora el tamaño del vector es 2, es decir, posee 2 elementos.
=========OPERACIONES BASICAS CON VECTORES========================Menu de opciones ====================1 Incluir un objeto en el vector 2 Saber el tamaño del vector 3 Borrar el ultimo objeto incluido en el vector 4 Saber cual fue el primer objeto incluido en el vector 5 Saber cual fue el ultimo objeto incluido en el vector 6 Salir 1Ingrese el nombre de la persona: MariaIngrese la cedula de la persona: 5678901Ingrese la edad de la persona: 55
Opción escogida 1: Nuevamente, para incluir un objeto de tipo persona en el vector ingresaremos los atributos de la persona (Nombre, Cedula y edad) a través del teclado.
=========OPERACIONES BASICAS CON VECTORES========================Menu de opciones ====================1 Incluir un objeto en el vector 2 Saber el tamaño del vector 3 Borrar el ultimo objeto incluido en el vector 4 Saber cual fue el primer objeto incluido en el vector 5 Saber cual fue el ultimo objeto incluido en el vector 6 Salir 2El vector contiene: 3 objetos en total
Opción escogida 2: Como hemos ingresado una tercera persona ahora el tamaño del vector es 3, es decir, posee 3 elementos.
=========OPERACIONES BASICAS CON VECTORES========================Menu de opciones ====================1 Incluir un objeto en el vector 2 Saber el tamaño del vector 3 Borrar el ultimo objeto incluido en el vector 4 Saber cual fue el primer objeto incluido en el vector 5 Saber cual fue el ultimo objeto incluido en el vector 6 Salir 4El primer objeto agregado es: Fran
Opción escogida 4: Como la primera persona ingresada e incluida en el vector posee el nombre Fran este es el valor retornado.
=========OPERACIONES BASICAS CON VECTORES========================Menu de opciones ====================1 Incluir un objeto en el vector 2 Saber el tamaño del vector 3 Borrar el ultimo objeto incluido en el vector 4 Saber cual fue el primer objeto incluido en el vector 5 Saber cual fue el ultimo objeto incluido en el vector 6 Salir 5El último objeto incluido es: Maria
Opción escogida 5: Como la última persona ingresada e incluida en el vector posee el nombre María este es el valor retornado.
=========OPERACIONES BASICAS CON VECTORES========================Menu de opciones ====================1 Incluir un objeto en el vector 2 Saber el tamaño del vector 3 Borrar el ultimo objeto incluido en el vector 4 Saber cual fue el primer objeto incluido en el vector 5 Saber cual fue el ultimo objeto incluido en el vector 6 Salir 3Se ha eliminado a Maria
Opción escogida 3: Como la última persona incluida es María, esta es la persona eliminada al escoger la opción de eliminación.
=========OPERACIONES BASICAS CON VECTORES========================Menu de opciones ====================1 Incluir un objeto en el vector 2 Saber el tamaño del vector 3 Borrar el ultimo objeto incluido en el vector 4 Saber cual fue el primer objeto incluido en el vector 5 Saber cual fue el ultimo objeto incluido en el vector 6 Salir 5El último objeto incluido es: Jose
Opción escogida 5: Como maría fue eliminada, ahora la última persona incluida en el vector es Jose.
=========OPERACIONES BASICAS CON VECTORES========================Menu de opciones ====================1 Incluir un objeto en el vector 2 Saber el tamaño del vector 3 Borrar el ultimo objeto incluido en el vector 4 Saber cual fue el primer objeto incluido en el vector 5 Saber cual fue el ultimo objeto incluido en el vector 6 Salir 2El vector contiene: 2 objetos en total
Opción escogida 2: Como María fue eliminada el vector ya no posee 3 elementos sino 2.
=========OPERACIONES BASICAS CON VECTORES========================Menu de opciones ====================1 Incluir un objeto en el vector 2 Saber el tamaño del vector 3 Borrar el ultimo objeto incluido en el vector 4 Saber cual fue el primer objeto incluido en el vector 5 Saber cual fue el ultimo objeto incluido en el vector 6 Salir 1Ingrese el nombre de la persona: PedroIngrese la cedula de la persona: 2567453Ingrese la edad de la persona: 47
Opción escogida 1: Ingresamos nuevamente una persona, para incluir un objeto de tipo persona en el vector ingresaremos los atributos de la persona (Nombre, Cedula y edad) a través del teclado.
=========OPERACIONES BASICAS CON VECTORES========================Menu de opciones ====================1 Incluir un objeto en el vector 2 Saber el tamaño del vector 3 Borrar el ultimo objeto incluido en el vector 4 Saber cual fue el primer objeto incluido en el vector 5 Saber cual fue el ultimo objeto incluido en el vector 6 Salir 5El último objeto incluido es: Pedro
Opción escogida 5: Como la última persona incluida es Pedro, este será el valor a mostrar al escoger la opción 5.
=========OPERACIONES BASICAS CON VECTORES========================Menu de opciones ====================1 Incluir un objeto en el vector 2 Saber el tamaño del vector 3 Borrar el ultimo objeto incluido en el vector 4 Saber cual fue el primer objeto incluido en el vector 5 Saber cual fue el ultimo objeto incluido en el vector 6 Salir 2El vector contiene: 3 objetos en total
Opción escogida 2: Como hemos incluido nuevamente una tercera persona, el tamaño del vector es 3.
Por último la clase Persona utilizada:
Persona.h
#ifndef PERSONA_H_#define PERSONA_H_
#include <iostream>
using namespace std;
class Persona {
private:
string nombre, cedula;
int edad;
public:
Persona();
void SetNombre(string nom);
string GetNombre();
void SetCedula(string ced);
string GetCedula();
void SetEdad(int eda);
int GetEdad();
};
#endif /* PERSONA_H_ */
Persona.cpp
#include "Persona.h"
Persona::Persona() {
// TODO Auto-generated constructor stub
}
void Persona::SetNombre(string nom) {
nombre = nom;
}
string Persona::GetNombre() {
return nombre;
}
void Persona::SetCedula(string ced) {
cedula = ced;
}
string Persona::GetCedula() {
return cedula;
}
void Persona::SetEdad(int eda) {
edad = eda;
}
int Persona::GetEdad() {
return edad;
}
Enlace de descarga del proyecto en C++:
https://mega.co.nz/#!9Rt3GCoK!1sk...
También te podría interesar:
- Elemento menor de un vector en C++ (min_element)
- Elemento mayor de un vector en C++ (max_element)
- Algoritmo - Factorial de un número en C++
- Matriz de la relación predecesor inmediato en c++
- Matriz de accesibilidad de un Digrafo en c++
- Elevar un número a una potencia en C++
- 4 Ejercicios Básicos de Programación Orientada a Objetos en c++