C++中的std::is_partitioned
std::is_partitioned 用于查找区间 [first, last)
是否已分区。如果区间根据某个条件分成了两部分,使得所有满足该条件的元素都在不满足该条件的元素之前,则称该区间已被分区。
它定义在头文件中。如果要检查其是否已分区的区间为空,则此函数返回true。
语法:
bool is_partitioned (InputIterator first,
InputIterator last, UnaryPredicate pred);
first: 区间的第一个元素的输入迭代器。
last: 区间的最后一个元素的输入迭代器。
pred: 一元谓词,接受区间中的元素作为参数,并返回一个可转换为bool值的值。返回的值表示该元素是否属于第一组(如果为true,则该元素应在所有返回false的元素之前)。
该函数不应修改其参数。
此可以是函数指针或函数对象。
返回: 如果pred(指向迭代器的区间 [first,last)
中的所有元素,使得pred返回true的元素都在它返回false的元素之前,则返回true。否则,返回false。
如果区间为空,则该函数返回true。
输出:
解释: 在本程序中,首先我们将元素存储在一个向量中,然后我们检查是否所有可被3整除的元素都在不能被3整除的元素之前。由于该条件对于采用的向量返回true,因此此处返回值为1,因为它已被分区。
另一个例子
- 检查所有奇数和偶数元素是否已分割
输出: