C++ Algorithm generate_n()

30 Aug 2024 | 3 分钟阅读

C++ Algorithm generate_n() 函数用于将由函数对象生成的值分配给范围中指定数量的元素,并返回最后一个分配值位置之后的位置。

生成器函数由用户定义,并连续调用以分配数字。

语法

参数

first:一个前向迭代器,指向要分配值的范围中第一个元素的位置。

gen:一个没有参数的函数对象,用于生成要分配给范围内每个元素的值。

n:生成器函数要分配的元素数量。它可以是有符号或无符号整数类型。

返回值

复杂度

复杂度与 n 成线性关系。它为每个元素调用 gen 并执行一次赋值。

数据竞争

由 first 指向的范围中的前 n 个对象会被修改,每个对象都只修改一次。

异常安全

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

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

示例 1

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

输出

1,2,4,8,16,32,64,128,256,512,

示例 2

让我们看另一个简单示例

输出

Vector v1 is ( 1804289383 846930886 1681692777 0 0 ).
Deque deq1 is ( 1714636915 1957747793 424238335 719885386 0 ).

示例 3

让我们看另一个简单示例

输出

1 2 3 4 5 6 7 8 9 10

示例 4

让我们看另一个简单示例

输出

myarray contains: 1 2 3 4 5 6 7 8 9

下一主题C++ 算法