C++ 算法 fill_n()

2024年8月30日 | 阅读4分钟

C++ 算法 fill_n() 函数用于将一个新值分配给从特定元素开始的范围内指定数量的元素。

这意味着在 fill_n() 中,我们指定起始位置、要填充的元素数量和要填充的值。

语法

参数

first:一个输出迭代器,指向要赋给值 val 的范围内第一个元素的位置。

val:用于填充范围的值。

n:要填充的元素数量,可以是带符号或无符号整数类型。

返回值

fill_n() 的第一个版本不返回任何值,第二个版本返回一个迭代器,指向要填充的最后一个元素之后的元素。

复杂度

复杂度为 n 的线性复杂度。它为每个元素分配一个值。

数据竞争

由 first 指向的范围内的前 n 个对象被修改。

异常安全

如果元素赋值或迭代器操作抛出异常,此函数将抛出异常。

请注意,无效参数会导致未定义行为。

示例 1

让我们看一个简单的示例来演示 fill_n() 的用法

输出

3,3,3,3,3,3,3,3,3,3,

示例 2

让我们看另一个简单示例

输出

  vector v =  ( 0 0 0 0 0 0 0 0 0 )
modified v = ( 1 1 1 0 0 0 0 0 0 )
modified v = ( 1 1 1 2 2 2 0 0 0 )
modified v = ( 1 1 1 2 2 2 3 3 3 )

示例 3

让我们看另一个简单示例

输出

 1 1 1 0 0 0 0 0
 1 1 1 4 4 4 0 0

示例 4

让我们看另一个简单示例

输出

Vector vec data: 10 11 12 13 14 15 16 17 18 19 20 

Operation: fill_n(vec.begin() + 3, 6, 9)
Modified vec data: 10 11 12 9 9 9 9 9 9 19 20

下一主题C++ 算法