is_heap_until
返回一个迭代器,它位于范围 [begin,end) 中不满足堆排序条件的第一个元素处;如果范围形成一个堆,则返回 end。
template<class RandomAccessIterator> RandomAccessIterator is_heap_until( RandomAccessIterator begin, RandomAccessIterator end ); template<class RandomAccessIterator, class BinaryPredicate> RandomAccessIterator is_heap_until( RandomAccessIterator begin, RandomAccessIterator end, BinaryPredicate compare );
参数
begin
一个随机访问迭代器,它为堆指定范围中要检查的第一个元素。end
一个随机访问迭代器,它为堆指定要检查的范围的末尾。compare
一个二元谓词,它指定定义堆的严格弱排序条件。 未指定 compare 时,默认谓词为 std::less<>。
返回值
如果指定的范围形成堆或包含一个或更少元素,则返回 end。 否则,为找到的不满足该堆条件的第一个元素返回迭代器。
备注
第一个模板函数返回 [begin, end] 中的最后一个迭代器 next,其中 [begin, next) 是由函数对象 std::less<> 排序的一个堆。 如果距离 end - begin < 2,则该函数返回 end。
第二个模板函数行为与第一个相同,只不过它将谓词 compare(而非 std::less<>)作为堆排序条件。
要求
标头:<algorithm>
命名空间: std