STL generate_n函数

STL generate_n函数算法

STL 中的 generate_n() 函数是使用 generate 的返回值填充指定位置及之后的 n 个元素的函数。

STL generate_n函数详解

头文件

#include <algorithm>

语法

template <class OutputIterator, class Size, class Generator> OutputIterator generate_n (OutputIterator first, Size n, Generator gen);

参数

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

案例

STL generate_n函数

使用 STL generate_n 函数填充元素

#include<algorithm> #include<iostream> #include<vector> using namespace std; 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; int i = 0; generate_n(vi.begin(),7,[&i](){return i++;}); cout << "after generate(vi.begin(),7,[&i](){return i++;});\n vi= "; for_each(vi.begin(), vi.end(), [](int i){cout << i << " ";}); cout << endl; return 0; }

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

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

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

54_STL generate_n函数.png

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

STL generate_n函数总结

STL 中的 generate_n() 函数是使用 generate 的返回值填充指定位置及之后的 n 个元素的函数。