基础算法

fill算法和generate算法的用法示例:

#include <vector>
#include <algorithm>
#include <iostream>
#include <cassert>

using namespace std;

void Print(int n)
{
    cout<<n<<endl;
}
int plus1()
{
    static int a = 0;
    return a++;
}
int main()
{
    vector<int> vec;
    vec.push_back(1);
    vec.push_back(3);
    vec.push_back(5);
    vec.push_back(7);
    for_each(vec.begin(),vec.end(),Print);
    //fill算法,把里面的数都填充为100.
    fill(vec.begin(),vec.end(),100);

    for_each(vec.begin(),vec.end(),Print);
    //fill算法,把里面的第一个填充为99
    fill(vec.begin(),vec.begin()+1,99);
     
     for_each(vec.begin(),vec.end(),Print);
    //generate连续调用plus1函数来给范围内元素赋值
    generate(vec.begin(),vec.end(),plus1);
    for_each(vec.begin(),vec.end(),Print);
    //在某个范围内赋值
    //generate(vec.begin(),vec.begin()+2,plus1);

}

猜你喜欢

转载自blog.csdn.net/qq_40477151/article/details/79627577