fill_n函数的作用是:给你一个起始点,然后再给你一个数值count和val。把从起始点开始依次赋予count个元素val的值。

注意: 不能在没有元素的空容器上调用fill_n函数

列子:

image

 

 

fill函数的作用是:将一个区间的元素都赋予val值。函数参数:fill(first,last,val);//first为容器的首迭代器,last为容器的末迭代器,val为将要替换的值。

例题:给你n个数,然后输入一些操作:start,end,paint。表示从start到end都赋予paint的值,并输出每一次操作后的数组状态。

代码:

#include <iostream>

#include <algorithm>

#include <vector>

using namespace std;

void print(int &elem){cout<<elem<<" ";}

int main()

{

vector <int> V;

int n,startpos,endpos,paint;

cin>>n;

V.resize(n);

while(cin>>startpos>>endpos>>paint)

{

fill(V.begin()+startpos-1,V.begin()+endpos,paint);

for_each(V.begin(),V.end(),print);

cout<<endl;

}

return 0;

}