generate:将区间[beg,end)赋值为fun返回值
//TEMPLATE FUNCTION generate_n
template<class _OutIt,
class_Diff,
class_Fn0> inline
void_Generate_n(_OutIt _Dest, _Diff _Count, _Fn0 _Func)
{ // replace [_Dest, _Dest + _Count) with _Func()
for (;0 < _Count; --_Count, ++_Dest)
*_Dest = _Func();
}
generate:将beg开始的n个区间赋值为fun的返回值
// TEMPLATEFUNCTION generate_n
template<class _OutIt,
class_Diff,
class_Fn0> inline
void_Generate_n(_OutIt _Dest, _Diff _Count, _Fn0 _Func)
{ // replace [_Dest, _Dest + _Count) with _Func()
for (;0 < _Count; --_Count, ++_Dest)
*_Dest = _Func();
}
举例
int main()
{
vector<int>vecIntOther;
generate_n( back_inserter( vecIntOther),5,rand );
generate(vecIntOther.begin(),vecIntOther.end(),rand );
copy( vecIntOther.begin(),vecIntOther.end(),ostream_iterator<int>( cout,"" ) );
system( "pause");
return0;
}