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

请参见

参考

is_heap

less 结构

<algorithm>

标准模板库