fill():将指定范围内的元素设定为指定值。
fill_n():将n个元素设定为指定值。
注意:fill()和fill_n()中的参数不能用常迭代器,如cbegin()和cend(),因为这两个函数需要对迭代器指向的值进行修改,所以需要用begin()和end().
generate()和generate_n()用于将集合的内容设置为一元函数返回的值。
#include<iostream>
#include<algorithm>
#include<vector>
#include<list>
#include<stdlib.h>
using namespace std;
template<class T>
void display(const T& input)
{
for (auto iele = input.cbegin(); iele != input.cend(); iele++)
{
cout << *iele << ' ';
}
cout << endl;
}
int main()
{
vector<int> vints(3);
fill(vints.begin(), vints.end(), 9);
display(vints);
vints.resize(6);
fill_n(vints.begin() + 3, 3, -9);
display(vints);
vector<int> vvints(10);
generate(vvints.begin(), vvints.end(), rand);
display(vvints);
list<int>lints(10);
generate_n(lints.begin(), 5, rand);
display(lints);
system("pause");
return 0;
}