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

参照

関連項目

is_heap

less 構造体

<algorithm>

標準テンプレート ライブラリ