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<> です。
戻り値
指定された範囲がヒープを形成している場合、または指定された範囲に含まれる要素が 1 つ以下の場合は、end を返します。 それ以外の場合、ヒープの条件を満たさない最初の要素の反復子を返します。
解説
1 つ目のテンプレート関数は、[begin, end] のうち、[begin, next) が関数オブジェクト std::less<> によって順序付けられるヒープである場合の最後の反復子 next を返します。 距離 end - begin < 2 の場合、この関数は end を返します。
2 つ目のテンプレート関数は 1 つ目の関数と同様の動作をしますが、ヒープの順序付け条件として std::less<> ではなく、述語 compare を使用します。
必要条件
ヘッダー: <algorithm>
名前空間: std