C++ Algorithm partition_copy()

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

C++ 算法 partition_copy() 函数用于将满足条件的元素复制到一个目标,将不满足条件的元素复制到另一个目标。这些元素必须属于指定的范围。

语法

参数

first:一个输入迭代器,指向要检查条件的范围中的第一个元素。

last:一个输入迭代器,指向范围中最后一个元素之后的元素。

pred:一个用户定义的一元谓词函数,定义要测试的条件。

result_true:一个输出迭代器,用于复制 pred 返回 true 的元素。

result_false:一个输出迭代器,用于复制 pred 返回 false 的元素。

返回值

此函数返回一对迭代器,分别指向由 result_true 和 result_false 地址的生成序列的末尾。

复杂度

如果内存充足,复杂性在范围 [first, last) 内是线性的:对每个元素应用 pred,并为每个元素执行一次赋值操作。

数据竞争

访问范围 [first, last) 中的对象,其中每个元素只访问一次。

异常

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

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

示例 1

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

输出

odd is:  1 3 5 7 9
even is:  2 4 6 8

示例 2

让我们看另一个简单示例

输出

true_arr: 6 7 8 9 10 
false_arr: 1 2 3 4 5

示例 3

让我们看另一个简单示例

输出

v : 1,2,3,4,5,
evens : 2,4,
odds  : 1,3,5,

示例 4

让我们看另一个简单示例

输出

Evens : 4
Odds  : 5

Contents of the vector is : 
[0] : 2
[1] : 4
[2] : 6
[3] : 8

Contents of the vector is : 
[0] : 1
[1] : 3
[2] : 5
[3] : 7
[4] : 9

下一主题C++ 算法