 
 
 
generate_n
|  |  | 
| Category: algorithms | Component type: function | 
Prototype
template <class OutputIterator, class Size, class Generator>
OutputIterator generate_n(OutputIterator first, Size n, Generator gen);
Description
Generate_n assigns the result of invoking gen, a function object
that takes no arguments, to each element in the range [first,
first+n). [1]  The return value is first + n.
Definition
Defined in the standard header algorithm, and in the nonstandard
backward-compatibility header algo.h.
Requirements on types
- 
OutputIterator is a model of Output Iterator.
- 
Size is an integral type (either signed or unsigned).
- 
Generator is a model of Generator.
- 
Generator's result type is convertible to a type in
   OutputIterator's set of value types.
Preconditions
- 
n >= 0.
- 
There is enough space to hold n values.  That is,
   [first, first+n) is a valid range.
Complexity
Linear.  Exactly n invocations of gen.  [1]
Example
Print 100 random numbers, using the C standard library function rand.
generate_n(ostream_iterator<int>(cout, "\n"), 100, rand);
Notes
[1]
The function object gen is invoked n times (once for
each iterator in the range [first, first+n)), as opposed to just
being invoked a single time outside the loop.  This distinction is important
because a Generator need not return the same result each time
it is invoked; it is permitted to read from a file, refer to and
modify local state, and so on.
See also
copy, fill, fill_n, generate, iota
 
![[Silicon Surf]](http://www.sgi.com/Images/Icon/surf.gif) 
![[STL Home]](stl_home.gif) 
Copyright © 
1999 Silicon Graphics, Inc. All Rights Reserved.
TrademarkInformation
webmaster@www.sgi.com