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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [Duda] 2 iteraciones al mismo tiempo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Duda] 2 iteraciones al mismo tiempo  (Leído 2,274 veces)
RayHack

Desconectado Desconectado

Mensajes: 11


Ver Perfil
[Duda] 2 iteraciones al mismo tiempo
« en: 22 Diciembre 2013, 00:32 am »

Buenas amigos quisiera pedirles un poco de ayuda en una duda que tengo.

¿Como hago 2 iteraciones una de map y otra de un vector en un mismo bucle?

Código:
for(std::map<int, Struct*>::iterator Structid = Mapa.begin(); Structid != Mapa.end(); ++Structid)
{
for(std::vector<int>::iterator vectorid = Vector.begin(); vectorid != Vector.end(); ++vectorid)
{
}
}

PD: Necesito pasar las iteraciones del vector por cada elemento del map, osea ejecutar los 2 bucles al mismo tiempo.

Un saludo y muchas gracias por su ayuda.




En línea

amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: [Duda] 2 iteraciones al mismo tiempo
« Respuesta #1 en: 22 Diciembre 2013, 11:30 am »

Pues:
Código
  1. std::map<int, Struct*>::iterator Structid = Mapa.begin();
  2.  
  3. for(std::vector<int>::iterator vectorid = Vector.begin(); vectorid != Vector.end() && Structid != Mapa.end(); ++vectorid)
  4. {
  5.   //...
  6.  
  7.  Structid++;
  8. }
  9.  


En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
0xDani


Desconectado Desconectado

Mensajes: 1.077



Ver Perfil
Re: [Duda] 2 iteraciones al mismo tiempo
« Respuesta #2 en: 22 Diciembre 2013, 14:30 pm »

Y así? Ahora mismo no estoy seguro de que compile, pero podría funcionar:

Código
  1.  
  2. for(std::vector<int>::iterator vectorid = Vector.begin(), std::map<int, Struct*>::iterator Structid = Mapa.begin(); vectorid != Vector.end() && Structid != Mapa.end(); ++vectorid, ++Structid)
  3. {
  4.  //...
  5. }
  6.  

PD: Si puedes usar características de C++ 11 usa la keyword auto para que no te salga tan largo e ilegible el cuerpo del bucle.
En línea

I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM
RayHack

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Re: [Duda] 2 iteraciones al mismo tiempo
« Respuesta #3 en: 22 Diciembre 2013, 22:50 pm »

Muchas gracias a los dos por sus respuestas, me ocurre el mismo problema el primer bucle vector imprime solo 1 dato y el mapa igual pero con el primer numero del dato del vector, es algo muy raro lo que me está pasando.

Lo que quiero hacer es por ejemplo:

MAPA VALOR = {1, 2, 3, 4, 5};
VECTOR VALORES = {0, 1, 2, 3, 4, 5};

Quiero que cada valor del mapa pase en este caso 5 veces por el valor del mapa y que luego que pasen las 5 iteraciones por el primer valor del mapa pase al segundo valor y haga lo mismo.

PD: Con mi forma de 2 bucle for funciona pero el vector solo iteraciona el mayor valor osea que los menores no se pasan, o sea que si el primer y unico valor es 1 y luego se inserta otro valor mayor entonces solo pasa el valor mayor.

Un saludo y muchas gracias.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines