Ver Mensaje Individual
  #2 (permalink)  
Antiguo 22/02/2007, 09:29
Avatar de _Lucifer_
_Lucifer_
 
Fecha de Ingreso: junio-2006
Mensajes: 1.662
Antigüedad: 18 años, 7 meses
Puntos: 28
Re: generar permutaciones aleatorias

¿Dices que el error te da aqui?
Código:
const size_t n = sizeof v / sizeof *v;
random_shuffle(v, v + n);
Pues si, el error es que el primer parametro de la funcion "random_shuffle" no puede ser v y por consiguiente el segundo no puede ser v+n, tiene que ser algo asi:
Código:
random_shuffle(v.begin(), v.begin() + n);
Otro error que tienes es el siguiente:
Cita:
const size_t n = sizeof v / sizeof *v;
Si lo que quieres es la cantidad de elementos la puedes obtener con el metodo "size()" del "vector"
Código:
size_t n = v.size();
random_shuffle(v.begin(), v.end());
Si te fijas no puse begin()+n porque el puntero al ultimo elemento lo obtienes directamente con el metodo "end()" de la platilla vector.

Te recomiendo que te consigas un buen manual de la STL para que te alcare un poco mas las dudas y aproveches toda su potencia.

Por cierto, no probe el resto del codigo, corrige lo que te mencione y despues nos comentas que tal te fue.

Saludos
__________________
Si crees que no tiene sentido, etonces probablemente lo tenga... :arriba: