📅  最后修改于: 2023-12-03 15:13:56.292000             🧑  作者: Mango
STL(Standard Template Library)是C++中非常重要的一个库,它提供了许多有用的容器、算法、迭代器等数据结构和算法工具。其中就包括fill()和fill_n()两个函数。
fill()函数的作用是将指定区间内的所有元素都赋予给定的值。下面是fill()函数的语法:
template<class ForwardIterator, class T>
void fill(ForwardIterator first, ForwardIterator last, const T& value);
其中,first
和last
是表示区间的迭代器,value
是所要赋给区间中元素的值。
下面是一个使用fill()函数的例子,代码如下:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
vector<int> v = {1, 2, 3, 4, 5};
int val = 0; // 将要赋给区间中元素的值
fill(v.begin(), v.end(), val); // 将v中所有元素都赋值为0
for (int i = 0; i < v.size(); i++) {
cout << v[i] << " "; // 输出:0 0 0 0 0
}
return 0;
}
fill_n()函数的作用是将指定的范围内的元素赋予给定的值。下面是fill_n()函数的语法:
template<class OutputIterator, class Size, class T>
void fill_n(OutputIterator first, Size n, const T& value);
其中,first
是指向要赋值的第一个元素的迭代器,n
是所要赋值的元素个数,value
是所要赋给这些元素的值。
下面是一个使用fill_n()函数的例子,代码如下:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
vector<int> v = {1, 2, 3, 4, 5};
int val = 0; // 将要赋给指定范围内元素的值
int n = 3; // 将要赋值的元素个数
fill_n(v.begin(), n, val); // 将v的前3个元素都赋值为0
for (int i = 0; i < v.size(); i++) {
cout << v[i] << " "; // 输出:0 0 0 4 5
}
return 0;
}
以上就是fill()和fill_n()函数的介绍和示例。通过使用这两个函数,我们可以快速地对容器中的元素进行赋值操作,非常方便。