泛型算法(十)之生成算法

1、generate(ForwardIterator first, ForwardIterator last, Generator gen):对序列中每个元素,依次调用函数gen的返回值赋值

    std::vector<int> c;
    c.resize(10);    //确保c在赋值时真正存在元素
    //用匿名函数的返回值给c中的每个元素赋值
    std::generate(c.begin(), c.end(), [](){
        return 100;
    });
    //输出c
    for (auto var : c)
    {
        std::cout << var << ",";
    }
    //打印结果:100,100,100,100,100,100,100,100,100,100,

2、generate_n(OutputIterator first, Size n, Generator gen):对序列中的n个元素,依次调用指定函数的返回值赋值

    std::vector<int> c;
    c.resize(10);    //确保c在赋值时真正存在元素
    //用匿名函数的返回值给c中的前5个元素赋值
    std::generate_n(c.begin(), 5, [](){
        return 100;
    });
    //输出c
    for (auto var : c)
    {
        std::cout << var << ",";
    }
    //打印结果:100,100,100,100,100,0,0,0,0,0,
原文地址:https://www.cnblogs.com/dongerlei/p/5142131.html