int gen () { static int c = 0; return ++c; }
list<int> l (n);
generate (l.begin(), l.end(), gen);
Implementierung (in <algorithm>)
template<typename _ForwardIter, typename _Generator>
void generate(_ForwardIter __first,
_ForwardIter __last, _Generator __gen)
{
for ( ; __first != __last; ++__first)
*__first = __gen();
}