The Wayback Machine - https://web.archive.org/web/20171205180424/http://ja.cppreference.com:80/w/cpp/algorithm/is_heap_until
名前空間
変種
操作

std::is_heap_until

提供: cppreference.com
< cpp‎ | algorithm

 
 
アルゴリズムライブラリ
機能します
Original:
Functions
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
シーケンス動作を非改変
Original:
Non-modifying sequence operations
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
シーケンス動作を変更する
Original:
Modifying sequence operations
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
操作を仕切る
Original:
Partitioning operations
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
(ソートされた範囲で)ソート操作
Original:
Sorting operations (on sorted ranges)
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
バイナリ検索操作(ソート範囲で)
Original:
Binary search operations (on sorted ranges)
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
(ソートされた範囲で)操作を設定します
Original:
Set operations (on sorted ranges)
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
ヒープ操作
Original:
Heap operations
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
is_heap
is_heap_until(C++11)
make_heap
最小値/最大値操作
Original:
Minimum/maximum operations
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
数値演算
Original:
Numeric operations
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Cライブラリ
Original:
C library
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
 
Defined in header <algorithm>
template<class RandomIt >
RandomIt is_heap_until( RandomIt first, RandomIt last );
(1) (C++11およびそれ以降)
template<class RandomIt, class Compare >
RandomIt is_heap_until( RandomIt first, RandomIt last, Compare comp );
(2) (C++11およびそれ以降)
レンジ[first, last)を調べて、ヒープ'ですfirstで最大範囲の始まりを見つけることができます。関数の最初のバージョンは要素を比較するoperator<使用し、2番目はcomp与えられた比較関数を使用しています.
Original:
Examines the range [first, last) and finds the largest range beginning at first which is heap. The first version of the function uses operator< to compare the elements, the second uses the given comparison function comp.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

目次

[編集]パラメータ

first, last -
検討する要素の範囲
Original:
the range of elements to examine
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
comp - 比較関数. 最初の値が二つ目の値より小さい 場合、 ​trueを返します.

比較関数のシグネチャは以下と同等でなければなりません.

 bool cmp(const Type1 &a, const Type2 &b);

シグネチャはconstを含まなくても構いませんが, 比較関数は渡されたオブジェクトを変更してはなりません.
The types Type1 and Type2 must be such that an object of type RandomIt can be dereferenced and then implicitly converted to both of them. ​

型の要件
-
RandomItRandomAccessIterator

の要求を満足しなければなりません。

[編集]値を返します

'ヒープですfirstで最大範囲の先頭の上限。つまり、最後のイテレータitどの範囲の[first, it)です'ヒープ.
Original:
The upper bound of the largest range beginning at first which is heap. That is, the last iterator it for which range [first, it) is heap.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

[編集]複雑性

firstlastとの間の距離の線形
Original:
Linear in the distance between first and last
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

[編集]ノート

'ヒープは、要素の範囲です[f,l)それは、次のプロパティがあります
Original:
A heap is a range of elements [f,l) that has the following properties:
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
  • *f範囲内の最大要素である
    Original:
    *f is the largest element in the range
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
  • 新しい要素がstd::push_heap()を使用して追加できます
    Original:
    a new element can be added using std::push_heap()
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
  • 最初の要素はstd::pop_heap()を用いて除去することができる
    Original:
    the first element can be removed using std::pop_heap()
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
要素の実際の配置は、実装定義です.
Original:
The actual arrangement of the elements is implementation defined.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

[編集]

#include <iostream>#include <algorithm>   int main(){std::vector<int> v {3, 1, 4, 1, 5, 9};   std::make_heap(v.begin(), v.end());   // probably mess up the heap v.push_back(2); v.push_back(6);   auto heap_end = std::is_heap_until(v.begin(), v.end());   std::cout<<"all of v: ";for(auto i : v)std::cout<< i <<' ';std::cout<<'\n';   std::cout<<"only heap: ";for(auto i = v.begin(); i != heap_end;++i)std::cout<<*i <<' ';std::cout<<'\n';}

出力:

all of v: 9 5 4 1 1 3 2 6 only heap: 9 5 4 1 1 3 2

[編集]参照

checks if the given range is a heap
(関数テンプレート)[edit]
close