2011-01-27 11 views

Respuesta

10

Puesto que un generador es un objeto de función, se puede crear una instancia del generador y proporcionar argumentos a su constructor:

class MyGenerator 
{ 
private: 
    int startValue; 
public: 
    MyGenerator(int startValue): startValue(startValue) {} 

    // generate an instance of A 
    A operator()() 
    { 
     return A(startValue, rand()); // or whatever you were planning to do here...     
    } 
}; 

... 
//down in your code (added Fred's sugestion) 
generate_n(back_inserter(v), 10, MyGenerator(startValue)); 

Luego, cada vez que se genera puede utilizar valorlnicial y rand para calcular los siguientes parámetros a usar para construir su objeto A

+0

ah ... shikes, vencerme por momentos ... Eliminaré el mío ... – Nim

+1

generate_n (back_inserter (v), 10, MyGenerator (startValue)); –

Cuestiones relacionadas