• Domingo 15 de Diciembre de 2024, 21:58

Autor Tema:  Recorrer una lista  (Leído 5903 veces)

nix2008

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Recorrer una lista
« en: Martes 3 de Marzo de 2009, 16:04 »
0
Buenas tardes,
No se si alguien me podra ayudar con un pequeño problema que no consigo resolver, se trata de una lista de enteros (Datos_List) de la que necesito que cada 10 segundos este mostrando un elemento de la lista, empezando por el primer elemento introducido y que luego visualice el siguiente hasta recorrer la totalidad de la lista.
Estoy trabajando sobre este código pero no obtengo lo que necesito:

....
dato.initTimer += timer; //Contador de tiempo ya implementado

if (dato.initTimer > 10)
{
  dato.initTimer =0;

  if(!Datos_List.empty())
  {
    list<int>::iterator pos;
    pos = Datos_List.bein();

    while(pos != Datos_List.end())
    {
      printf("n%i", *pos);
      pos++;
    }
  }
}


MUCHAS GRACIAS por adelantado

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Recorrer una lista
« Respuesta #1 en: Martes 3 de Marzo de 2009, 16:12 »
0
Si estas poniendo begin correctamente no se cual es el problema ... depuralo, usando esto me va sin problemas:

Código: Text
  1. #include <list>
  2. #include <stdio.h>
  3.  
  4. using namespace std;
  5.  
  6. void main()
  7. {
  8.   list<int> Datos_List;
  9.   Datos_List.push_back(7);
  10.   Datos_List.push_back(9);
  11.   Datos_List.push_back(12);
  12.  
  13.   if(!Datos_List.empty())
  14.   {
  15.     list<int>::iterator pos;
  16.     pos = Datos_List.begin();
  17.     while(pos != Datos_List.end())
  18.     {
  19.       printf("n%i", *pos);
  20.       pos++;
  21.     }
  22.   }
  23. }
  24.  

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

nix2008

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Re: Recorrer una lista
« Respuesta #2 en: Martes 3 de Marzo de 2009, 16:27 »
0
Muchas gracias por tu contestación Eternal Idol; pero al ejecutar el codigo que escribiste y no esta haciendo lo que necesito, no me muestra un valor cada diez segundos, sino que cada diez segundos me muestra todo lo que tiene la lista.
Yo lo que necesito es que me muestre el primer elemento durante 10 segundos, durante los siguientes 10 segundos me muestre el segundo elemento y asi hasta alcanzar el final de la lista.
Habría alguna forma de conseguir lo que necesito???

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Recorrer una lista
« Respuesta #3 en: Martes 3 de Marzo de 2009, 16:51 »
0
Si la lista no cambia es muy simple, haces todo en un solo bucle y despues del pos++; pones Sleep(10000);.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.