C++ Algorithm is_partitioned()

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

C++ Algorithm is_partitioned() 用于测试一个范围 [first, last) 是否根据谓词进行了分区。换句话说,范围中所有满足谓词的元素都位于序列的开头。

如果范围为空,则返回 true。

语法

参数

first: 指向范围中第一个元素的输入迭代器。

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

pred: 用户定义的一元谓词函数,对于预期位于范围开头的元素返回 true。

返回值

如果范围为空或由给定的谓词 pred 分区,则此函数返回 true,否则返回 false。

复杂度

复杂度与范围 [first, last) 成线性关系:为每个元素调用 pred,直到找到不匹配项。

数据竞争

访问范围 [first, last) 中的对象。

每个元素只访问一次。

异常

如果 pred 或迭代器操作抛出异常,此函数将抛出异常。

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

示例 1

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

输出

Before Partition: 1 2 3 4 5 
After partition : 4 2 3 1 5 

Is it partitioned?
Yes,It is Partitioned

示例 2

让我们看另一个简单示例

输出

All the even no. are present before odd no.
All the even no. are not present before odd no.

示例 3

让我们看另一个简单示例

输出

false true false 

示例 4

让我们看另一个简单示例

输出

Before Partition: 11 2 3 4 15 12 
After partition: 4 2 3 11 15 12 

Is it partitioned?
Yes, It is Partitioned.

下一主题C++ 算法