注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

告别迷茫

梦想与现实的差距,就是我们生活的意义。因为我们有差距,我们才会一直积累,在努力。

 
 
 

日志

 
 

23-5generate和generate_n算法  

2014-04-22 21:33:37|  分类: STL 基本的用法 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |


算法目的用发生器对容器进行填充
template<typename ForwardIterator, typename Generator>
void   generate(ForwardIterator first, ForwardIterator last, Generator gen){
                
for ( ; first != last; ++first)
                          *first = gen();
}
算法目的用发生器对容器从first开始进行填充n次
template<typename   OutputIterator, typename   Size, typename Generator>
OutputIterator   generate_n(OutputIterator first, Size n, Generator gen) {
                            
 for ( ; n > 0; --n, ++first)
                                   *first = gen();
                             
return first;
}
当然为了使用这两个算法,你还要写一个发生器.随便举个例子:
struct Gen{
     
int operator()(){
           
return rand();//产生随机数的函数
     }
};

#include<iostream>
#include<vector>
#include<list>
#include<algorithm>

using namespace std;
int main()
{
vector<int> v(10);
generate(v.begin() ,v.end(),rand);
cout<<v.size()<<endl;
for(int i=0;i<v.size();i++)
{
cout<<v.at(i)<<" ";
}
cout<<endl;
list<int> g (10);
generate_n(g.begin(),5 ,rand);
list<int>::const_iterator i;
for(i=g.begin();i!=g.end();i++)
{
cout<<*i<<" ";
}
cout<<endl;
}

23-5generate和generate_n算法 - 983433479 - jet sky
 
 

与full 和full_n 设置为指定的值; 不同我们的generate_n是吧我们的一元函数返回的值作为我们的集合的内容,


generate_n(g.begin(),5 ,rand);  将我们的随机值得五个  设置我们集合的值


  评论这张
 
阅读(1)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017