generate和generate_n算法
来源:互联网 发布:恐怖故事2剧情解析知乎 编辑:程序博客网 时间:2024/06/06 05:40
算法目的用发生器对容器进行填充
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();//产生随机数的函数
}
};
boost例子
#include <list>
#include <algorithm>
#include <cstdlib>
#include <cassert>
#include <iostream>
#include "windows.h"
#include "time.h"
#include <boost/algorithm/minmax.hpp>
#include <boost/algorithm/minmax_element.hpp>
int main()
{
using namespace std;
// Demonstrating minmax()
boost::tuple<int const&, int const&> result1 = boost::minmax(1, 0);
assert( result1.get<0>() == 0 );
assert( result1.get<1>() == 1 );
// Demonstrating minmax_element()
list<int> L;
typedef list<int>::const_iterator iterator;
srand(time(NULL));
generate_n(front_inserter(L), 1000, rand);
pair< iterator, iterator > result2 = boost::minmax_element(L.begin(), L.end());
cout << "The smallest element is " << *(result2.first) << endl;
cout << "The largest element is " << *(result2.second) << endl;
assert( result2.first == std::min_element(L.begin(), L.end()) );
assert( result2.second == std::max_element(L.begin(), L.end()) );
Sleep(11111111);
}
- generate和generate_n算法
- STL:generate()和generate_n()
- STL algorithm算法generate和generate_n(22)
- std::generate和std::generate_n
- generate和generate_n的使用
- STL 之generate和generate_n
- STL generate_n 和 generate 用法
- STL 之generate和generate_n
- 泛型算法系列17:generate_n()&&generate()
- 变异算法之生成(generate, generate_n)
- STL generate和generate_n的使用
- STL_算法_填充新值(fill、fill_n、generate、generate_n)
- fill,fill_n,generate,generate_n
- C++ generate,generate_n
- STL::generate、generate_n用法
- STL generate()与generate_n()
- STL_Algorithm1: Fill, Fill_n, Generate, Generate_n
- Difference between std::generate and std::generate_n
- Linux下C线程池的实现
- POJ 3628 - Bookshelf 2
- TinyXml快速入门2
- API库函数调用与随机数生成
- 第一次的编程,纪念一下啦~~
- generate和generate_n算法
- 自动化测试专家
- DirectShow+VS2005配置日记
- Servlet生命周期与工作原理
- 对Shanty-Mongo使用过程的一些记录
- 如何停止JAVA线程
- ADODB入门手册:从MySQL向ADODB转移
- C++与Lua交互(二)
- Linux网络配置