C++ 算法 generate ()

30 Aug 2024 | 3 分钟阅读

C++ 算法 generate() 函数用于将函数对象生成的值分配给范围中的每个元素。

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

语法

参数

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

last: 一个前向迭代器,指向要分配值的范围中最终元素之后一个位置。

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

返回值

复杂度

复杂度与范围 [first, last) 成线性关系。它会为每个元素调用 gen 并执行一次赋值。

数据竞争

范围 [first, last) 中的对象会被修改。每个对象都只访问一次。

异常安全

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

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

示例 1

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

输出

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

示例 2

让我们看另一个简单示例

输出

1 2 3 4 5 6 7 8 9 10  

示例 3

让我们看另一个简单示例

输出

Vector v1 is ( 1804289383 846930886 1681692777 1714636915 1957747793 ).
Deque deq1 is ( 424238335 719885386 1649760492 596516649 1189641421 ).

示例 4

让我们看另一个简单示例

输出

myvector contains: 93 16 77 25 39 52 56 19
myvector contains: 1 2 3 4 5 6 7 8

下一主题C++ 算法