fill(beg,end,newValue)和fill_n(beg,num,newValue)的特点
1:迭代器类型 fill----前向迭代器,fill_n-----输出迭代器
2:返回值类型:void
3:算法功能:fill----将区间[beg,end)赋予新值newValue,fill_n-----将beg开头的区间的前sum个元素赋值为newValue
4:复杂度:线性复杂度
5:对于fill_n()调用者必须保证目标区间有足够的空间,否则应使用插入迭代器
#include<iostream>
#include<vector>
#include<functional>
using namespace std;
int main()
{
vector<int>c1 = { 1,2,3,4,5 };
cout << "c1:";
copy(c1.begin(), c1.end(), ostream_iterator<int>(cout, " "));
cout << endl;
fill(c1.begin(), c1.end(), 9);
cout << "c1:";
copy(c1.begin(), c1.end(), ostream_iterator<int>(cout, " "));
cout << endl;
}
#include<iostream>
#include<vector>
#include<functional>
using namespace std;
int main()
{
vector<int>c1 = { 1,2,3,4,5 };
cout << "c1:";
copy(c1.begin(), c1.end(), ostream_iterator<int>(cout, " "));
cout << endl;
fill_n(ostream_iterator<int>(cout," "),3,5); //向输出流迭代器传入3个5
cout << endl;
fill_n(c1.begin(), 3, 9);//将[beg,beg+3)区间的元素改为9
fill_n(back_inserter(c1), 6,1); //向c1尾部添加6个1
cout << "c1:";
copy(c1.begin(), c1.end(), ostream_iterator<int>(cout, " "));
cout << endl;
}