STL generate函数

STL generate函数算法

STL 中的 generate() 函数用指定函数对象产生的值去给容器指定范围内元素赋值。而且 generate() 没有任何返回值。

STL generate函数详解

头文件

#include <algorithm>

语法

template <class ForwardIterator, class Generator> void generate (ForwardIterator first, ForwardIterator last, Generator gen);

参数

参数 描述
first 输入迭代器
last 输入迭代器
gen 一个接受空参数,并返回一个对应的值的函数或者是函数对象之类的

案例

STL generate函数

使用 STL generate 函数填充元素

#include<algorithm> #include<iostream> #include<vector> using namespace std; static int i=0; int addone() { return i++; } int main() { std::cout << "嗨客网(www.haicoder.net)\n" << std::endl; vector<int> vi(10); cout << "at first,vi = "; for_each(vi.begin(), vi.end(), [](int i){ cout << i << " "; }); cout << endl; generate(vi.begin(), vi.end(), addone); cout << "after generate(vi.begin(), vi.end(), addone);\n vi= "; for_each(vi.begin(), vi.end(), [](int i){cout << i << " ";}); cout << endl; return 0; }

我们在 Linux 下使用 g++ 进行编译,具体命令如下:

g++ generate.cpp -std=c++11

编译后,我们直接运行生成的二进制文件 a.out,如下图所示:

53_STL generate函数.png

我们使用了 generate 函数,实现了填充集合。

STL generate函数总结

STL 中的 generate() 函数用指定函数对象产生的值去给容器指定范围内元素赋值。而且 generate() 没有任何返回值。