fill
①.头文件
fill 算法定义在头文件 #include 中。
②.算法作用
fill 算法是把给定范围的区间全部用同一固定值进行填充。
③.代码示例
vector<int> vec1 = { 1,2,3,4,5,6 };
cout << "原序列 vec1:" << endl;
for_each(vec1.begin(), vec1.end(), [](int i) {cout << i << " "; });
fill(vec1.begin(), vec1.end(), 10);
cout << endl << "新序列 vec1:" << endl;
for_each(vec1.begin(), vec1.end(), [](int i) {cout << i << " "; });
fill_n
①.头文件
fill_n 算法定义在头文件 #include 中。
②.算法作用
fill_n 算法同 fill,指定了数据填充的起始位置及填充个数。
③.代码示例
ector<int> vec1 = { 1,2,3,4,5,6 };
cout << "原序列 vec1:" << endl;
for_each(vec1.begin(), vec1.end(), [](int i) {cout << i << " "; });
fill(vec1.begin(), 4, 10);
cout << endl << "新序列 vec1:" << endl;
for_each(vec1.begin(), vec1.end(), [](int i) {cout << i << " "; });
generate
①.头文件
generate 算法定义在头文件 #include 中。
②.算法作用
generate 算法也是用来填充序列,但是通过指定的函数对象来生成数据。
③.代码示例
vector<int> vec1 = { 1,2,3,4,5,6 };
cout << "原序列 vec1:" << endl;
for_each(vec1.begin(), vec1.end(), [](int i) {cout << i << " "; });
random_device rd;
mt19937 mt(rd());
uniform_int_distribution<int> dis(1, 20);
generate(vec1.begin(), vec1.end(), bind(dis,ref(mt)));
cout << endl << "新序列 vec1:" << endl;
for_each(vec1.begin(), vec1.end(), [](int i) {cout << i << " "; });
generate_n
①.头文件
generate_n算法定义在头文件 #include 中。
②.算法作用
generate_n 算法同 generate,指定了数据填充的起始位置及填充个数 。
③.代码示例
vector<int> vec1 = { 1,2,3,4,5,6 };
cout << "原序列 vec1:" << endl;
for_each(vec1.begin(), vec1.end(), [](int i) {cout << i << " "; });
random_device rd;
mt19937 mt(rd());
uniform_int_distribution<int> dis(1, 20);
generate_n(vec1.begin(), 3, bind(dis,ref(mt)));
cout << endl << "新序列 vec1:" << endl;
for_each(vec1.begin(), vec1.end(), [](int i) {cout << i << " "; });