📅  最后修改于: 2023-12-03 14:39:50.524000             🧑  作者: Mango
C++ STL(Standard Template Library,标准模板库)中提供了各种算法,其中 fill_n()
函数是其中之一,用于将指定范围内的所有元素用指定值填充。
template <class OutputIterator, class Size, class T>
void fill_n(OutputIterator first, Size n, const T& value);
不同版本的 C++ STL 中还可能会有其他额外的重载形式。
OutputIterator first
:用于指向第一个元素的迭代器。Size n
:需要填充的元素个数。const T& value
:要填充的值。下面是一个简单的示例:
#include <algorithm>
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec(10);
std::fill_n(vec.begin(), 5, 42);
for (const auto& i : vec) {
std::cout << i << " ";
}
std::cout << '\n';
}
输出结果为:
42 42 42 42 42 0 0 0 0 0
fill_n()
函数只能用于可以进行写操作的迭代器。n
大于范围内元素的数量时,会出现未定义的错误。operator=
)。fill_n()
函数是 C++ STL 中的一个便捷算法,可以帮助我们快速地填充一段范围内的元素,使用起来也非常简单。掌握这个算法可以提高我们的编码效率。