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

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,

 

posted on 2016-01-19 14:21  dongtshj  阅读(353)  评论(0编辑  收藏  举报