zoukankan      html  css  js  c++  java
  • STL generate()与generate_n()

    generate()

    功能:用指定函数对象产生的值去给容器指定范围内元素赋值

     

    [cpp] view plain copy
     
    1. template<class ForwardIterator, class Generator>  
    2.    void generate(  
    3.       ForwardIterator _First,   
    4.       ForwardIterator _Last,   
    5.       Generator _Gen  
    6.    );  


    generate_n()

     

    功能:一个函数对象产生的值给一定的范围内指定数目的容器元素赋值

     

    [cpp] view plain copy
     
    1. template<class OutputIterator, class Diff, class Generator>  
    2.    void generate_n(  
    3.       OutputIterator _First,   
    4.       Diff _Count,   
    5.       Generator _Gen  
    6.    );  


    example:

     

     

    [cpp] view plain copy
     
    1. #include <iostream>  
    2. #include <vector>  
    3. #include <algorithm>  
    4.   
    5.   
    6. using namespace std;  
    7.   
    8.   
    9. class IntSequence  
    10. {  
    11. private:  
    12.     int m_Value;  
    13. public:  
    14.     IntSequence(int value):m_Value(value){}       
    15.     int operator()()  
    16.     {  
    17.         return m_Value++;  
    18.     }  
    19. };  
    20.   
    21.   
    22. int main()  
    23. {  
    24.     vector<int> IntVec;  
    25.     generate_n(back_inserter(IntVec),9,IntSequence(1));  
    26.     for(vector<int>::iterator it=IntVec.begin();it!=IntVec.end();++it)  
    27.     {  
    28.         cout<<*it<<" ";  
    29.     }  
    30.     cout<<endl;  
    31.     generate(++IntVec.begin(),--IntVec.end(),IntSequence(10));  
    32.     for(vector<int>::iterator it=IntVec.begin();it!=IntVec.end();++it)  
    33.     {  
    34.         cout<<*it<<" ";  
    35.     }  
    36.     cout<<endl;  
    37.     return 0;  
    38. }  


    结果:

     

    1,2,3,4,5,6,7,8,9

    1,10,11,12,13,14,15,16,9

  • 相关阅读:
    有耗介质中波的传播
    介质分界处的反射
    TFSF边界条件
    吸收边界条件
    .apk的MIME类型
    Java instanceof
    Java toString()方法的自动调用
    整理一系列优秀的Android开发源码
    GOOGLE CODE ANDROID 开源项目 集合
    imsdroid 学习(初认识)
  • 原文地址:https://www.cnblogs.com/zhubaohua-bupt/p/7182817.html
Copyright © 2011-2022 走看看