elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Vector(STL) con estructuras
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Vector(STL) con estructuras  (Leído 1,690 veces)
Ja_90

Desconectado Desconectado

Mensajes: 51



Ver Perfil
Vector(STL) con estructuras
« en: 8 Diciembre 2014, 01:18 am »

Buenas, queria resolver una duda referente a el uso de vectores con estructuras. A lo que me refiero es a que si puedo hacer esto:

Código
  1. #include <iostream>
  2. using std::cout;
  3. using std::cin;
  4. using std::endl;
  5.  
  6. struct Estructura
  7. {
  8.     string nombre;
  9.     int Edad;
  10. };
  11.  
  12. int main()
  13. {
  14.      Estructura persona[2];    
  15.  
  16.      for (int i=0 ; i<2 ; i++)
  17.      {
  18.          cout << "Ingrese nombre: ";
  19.          getline(cin,persona[i].nombre);
  20.          cout << "Ingrese edad: ";
  21.          cin >> persona[i].edad;
  22.          cin.ignore();
  23.      }
  24.  
  25.     // Y para imprimirlo seria:
  26.  
  27.      for (int i=0 ; i<2 ; i++)
  28.      {
  29.          cout << persona[i].nombre << endl;
  30.          cout << persona[i].edad << endl;
  31.      }
  32. }
  33.  

Ahora en vez de
Código
  1. Estructura persona[2];
Hacer algo como
Código
  1. vector<Estructura>Arreglo; // Hasta aqui declare un vector de tipo Estructura


Pero como hago la parte de:
Código
  1. for (int i=0 ; i<2 ; i++)
  2.      {
  3.          cout << "Ingrese nombre: ";
  4.          getline(cin,persona[i].nombre);
  5.          cout << "Ingrese edad: ";
  6.          cin >> persona[i].edad;
  7.          cin.ignore();
  8.      }
  9.  
Como asigno el nombre y la edad que pida al usuario a el vector que cree del tipo Estructura??...

Esto se puedo hacer?. Gracias por su colaboracion.


En línea

:D  ::::Ja_90::::   :D
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Vector(STL) con estructuras
« Respuesta #1 en: 8 Diciembre 2014, 01:23 am »

O utilizas una estructura temporal, y luego la insertas en el vector,

o al comienzo de cada ciclo, le insertas una estructura, y trabajas sobre esa estructura (v[ i ])

o le pones un tamaño inicial al vector, y ya no necesitas insertar la estructura cada ciclo.


En línea

Ja_90

Desconectado Desconectado

Mensajes: 51



Ver Perfil
Re: Vector(STL) con estructuras
« Respuesta #2 en: 8 Diciembre 2014, 02:08 am »

O utilizas una estructura temporal, y luego la insertas en el vector,

o al comienzo de cada ciclo, le insertas una estructura, y trabajas sobre esa estructura (v[ i ])

o le pones un tamaño inicial al vector, y ya no necesitas insertar la estructura cada ciclo.

Realice lo ultimo que mencionaste y funciono, ahora bien me podrias dar una pequena explicacion de las 2 primeras ya que para ser sincero no entendi muy bien. Te lo agradeceria. Perdona la molestia.
En línea

:D  ::::Ja_90::::   :D
Orubatosu


Desconectado Desconectado

Mensajes: 2.515


Ver Perfil WWW
Re: Vector(STL) con estructuras
« Respuesta #3 en: 8 Diciembre 2014, 08:59 am »

S no me equivoco, (y es como yo suelo hacerlo), si creas un vector de tuplas (o cualquier otro contenedor, como una lista) lo que hago es crear una variable tupla temporal, y a cada "vuelta" la meto en el vector usando push_back

Por ejemplo, para una tupla como :

Código:
struct Empleado {
   int DNI;
   string categoria;
   double sueldo;
};

Deseo leer de un fichero de texto y meter los datos en un vector:

Código:
    Empleado datos;
    vector<Empleado> E;
    string cate;
    // Carga datos desde file
    ifstream F;
    F.open("empleados.txt");
    while(!F.eof()){
        F >> datos.DNI;
        F >> datos.categoria;
        F >> datos.sueldo;
        E.push_back(datos);
    }
    F.close();

Es un ejemplo muy sencillo y quizás un poco "chapuza", pero creo que explica el funcionamiento. Creas una variable del tipo tupla que deseas, la rellenas con los datos y la metes en el vector, y lo haces de nuevo hasta terminar.

De todos modos, en lo relativo a vectores, ves pensando en ver como funcionan los iteradores, que son otra forma de acceder a los vectores, porque te será mas útil y ademas imprescindible para manejar otros contenedores de la STL, porque por ejemplo las listas (que son como vectores pero mas versátiles) solo pueden manejarse con iteradores, y no con índices como los vectores.
En línea

"When People called me freak, i close my eyes and laughed, because they are blinded to happiness"
Hideto Matsumoto 1964-1998
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Estructuras.....
Programación C/C++
Rodri 1 2,516 Último mensaje 6 Octubre 2011, 19:46 pm
por satu
Estructuras en C++
Programación C/C++
jjrl1984 1 1,680 Último mensaje 18 Diciembre 2012, 02:27 am
por naderST
Estructuras en C
Programación C/C++
Redisteon 1 1,577 Último mensaje 10 Agosto 2013, 10:39 am
por Eternal Idol
Estructuras en C
Programación C/C++
Redisteon 4 2,209 Último mensaje 11 Agosto 2013, 19:25 pm
por amchacon
Fallo al insertar estructura a vector de estructuras
Programación C/C++
Kaxperday 2 1,444 Último mensaje 7 Julio 2015, 16:13 pm
por Kaxperday
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines