📜  C++ STL-algorithm.fill_n()函数(1)

📅  最后修改于: 2023-12-03 14:39:50.524000             🧑  作者: Mango

C++ STL-algorithm.fill_n()函数介绍

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 中的一个便捷算法,可以帮助我们快速地填充一段范围内的元素,使用起来也非常简单。掌握这个算法可以提高我们的编码效率。