A generator is a function used to produce values. In particular, it can potentially return a different value each time it is invoked. An example is the random number generator. The random number generator could be used to initialize a vector of 20 integers as follows:

   vector a(20);
   generate_n(a.begin(), 20, rand);