generate详解

来源:互联网 发布:黑马程序员安卓视频 编辑:程序博客网 时间:2024/06/05 03:21

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;

}

 

原创粉丝点击