【函数】fill和fill_n填充之区别

系统 1671 0

fill对区间填充

原型:

      template < 
      
        class
      
       ForwardIterator, 
      
        class
      
       T >


      
        void
      
       fill ( ForwardIterator 
      
        first
      
      , ForwardIterator 
      
        last
      
      , 
      
        const
      
       T&
      
         value )

{

  
      
      
        while
      
       (first != last)  *first++ =
      
         value;

}
      
    

填充区间[first,last )

示例:

      #include <iostream>
      
        

#include 
      
      <algorithm>
      
        

#include 
      
      <vector>


      
        using
      
      
        namespace
      
      
         std;




      
      
        int
      
      
         main () {

  vector
      
      <
      
        int
      
      > myvector (
      
        8
      
      );                       
      
        //
      
      
         myvector: 0 0 0 0 0 0 0 0
      
      
        

  fill (myvector.begin(),myvector.begin()
      
      +
      
        4
      
      ,
      
        5
      
      );   
      
        //
      
      
         myvector: 5 5 5 5 0 0 0 0
      
      

  fill (myvector.begin()+
      
        3
      
      ,myvector.end()-
      
        2
      
      ,
      
        8
      
      );   
      
        //
      
      
         myvector: 5 5 5 8 8 8 0 0
      
      
        

  cout 
      
      << 
      
        "
      
      
        myvector contains:
      
      
        "
      
      
        ;

  
      
      
        for
      
       (vector<
      
        int
      
      >::iterator it=myvector.begin(); it!=myvector.end(); ++
      
        it)

    cout 
      
      << 
      
        "
      
      
        "
      
       << *
      
        it;



  cout 
      
      <<
      
         endl;

 

  
      
      
        return
      
      
        0
      
      
        ;

}
      
    

fill_n可 指定填充的个数

原型:

      template < 
      
        class
      
       OutputIterator, 
      
        class
      
       Size, 
      
        class
      
       T >

  
      
        void
      
       fill_n ( OutputIterator 
      
        first
      
      , Size
      
         n
      
      , 
      
        const
      
       T&
      
         value )

{

  
      
      
        for
      
       (; n>
      
        0
      
      ; --n)  *first++ =
      
         value;

}
      
    

填充区间[first,first+n)

n为要填充的元素个数

示例:

      #include <iostream>
      
        

#include 
      
      <algorithm>
      
        

#include 
      
      <vector>


      
        using
      
      
        namespace
      
      
         std;




      
      
        int
      
      
         main () {

  vector
      
      <
      
        int
      
      > myvector (
      
        8
      
      ,
      
        10
      
      );        
      
        //
      
      
         myvector: 10 10 10 10 10 10 10 10
      
      
        

  fill_n (myvector.begin(),
      
      
        4
      
      ,
      
        20
      
      );     
      
        //
      
      
         myvector: 20 20 20 20 10 10 10 10
      
      

  fill_n (myvector.begin()+
      
        3
      
      ,
      
        3
      
      ,
      
        33
      
      );   
      
        //
      
      
         myvector: 20 20 20 33 33 33 10 10
      
      
        

  cout 
      
      << 
      
        "
      
      
        myvector contains:
      
      
        "
      
      
        ;

  
      
      
        for
      
       (vector<
      
        int
      
      >::iterator it=myvector.begin(); it!=myvector.end(); ++
      
        it)

    cout 
      
      << 
      
        "
      
      
        "
      
       << *
      
        it;



  cout 
      
      <<
      
         endl;

 

  
      
      
        return
      
      
        0
      
      
        ;

}
      
    

【函数】fill和fill_n填充之区别


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论