¿Todos ellos heredan de una clase base? ¿Tengo que usar plantillas?¿Cómo paso un generador de números aleatorios C++ 11 a una función?
(me refiero a estos http://www.codeguru.com/cpp/cpp/cpp_mfc/stl/article.php/c15319/)
que estoy haciendo esto ahora:
typedef std::mt19937 RNG;
y luego
class Chooser {
public:
Chooser(RNG& rng, uint n, uint min_choices, uint max_choices):
En otras palabras, estoy pasando referencias a RNG . ¿Cómo pasaría en un generador arbitrario?
Además, me doy cuenta de que esta es quizás una pregunta diferente, pero ¿cómo paso el generador a STL?
parece que no funciona.
solución al generador de fallecimiento:
typedef std::ranlux64_base_01 RNG;
typedef std::mt19937 RNGInt;
solución para pasar a STL:
struct STL_RNG {
STL_RNG(RNGInt& rng): gen(rng) {}
RNGInt& gen;
int operator()(int n) { return std::uniform_int<int>(0, n)(gen); }
};
De acuerdo con ese artículo, ya son funtores, por lo que debe estar listo para funcionar. ¿Cuál es el problema? – Potatoswatter
Probablemente podamos brindarle información más específica y útil si conocemos su objetivo. – GManNickG
Específicamente, ¿cómo desea que sus generadores sean diferentes y cuál es el error del compilador que obtiene para 'random_shuffle'? – Potatoswatter