std::push_heap
提供: cppreference.com
                    
                                        
                    
                    
                                                            
                    |  | このページは、Google 翻訳を使って英語版から機械翻訳されました。 
 翻訳には誤りや奇妙な言い回しがあるかもしれません。文章の上にポインタをおくと、元の文章が見れます。誤りを修正して翻訳を改善する手助けをしてください。翻訳についての説明は、ここをクリックしてください。 | 
| ヘッダ  <algorithm>で定義 | ||
| template< class RandomIt > void push_heap( RandomIt first, RandomIt last ); | (1) | |
| template< class RandomIt, class Compare > void push_heap( RandomIt first, RandomIt last, | (2) | |
挿入範囲
last-1によって定義されたヒープに位置[first, last-1)にある要素。関数の最初のバージョンは要素を比較するoperator<使用し、2番目はcomp与えられた比較関数を使用しています.Original:
Inserts the element at the position 
last-1 into the heap defined by the range [first, last-1). 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.
You can help to correct and verify the translation. Click here for instructions.
| 目次 | 
[編集] パラメータ
| first, last | - |  変更するヒープを定義する要素の範囲 Original:  the range of elements defining the heap to modify 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); シグネチャは | 
| 型の要件 | ||
| - RandomItはRandomAccessIteratorの要件を満たさなければなりません。 | ||
| -The type of dereferenced RandomItmust meet the requirements ofMoveAssignableandMoveConstructible. | ||
[編集] 値を返します
(なし)
[編集] 複雑性
せいぜい 2×log(n)の比較どこN=std::distance(first, last).
Original:
At most 2×log(N) comparisons where N=std::distance(first, last).
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
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.
You can help to correct and verify the translation. Click here for instructions.
-  *f範囲内の最大要素であるOriginal:*f is the largest element in the rangeThe 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.
You can help to correct and verify the translation. Click here for instructions.
[編集] 例
Run this code
#include <iostream> #include <algorithm> int main() { std::vector<int> v { 3, 1, 4, 1, 5, 9 }; std::make_heap(v.begin(), v.end()); std::cout << "v: "; for (auto i : v) std::cout << i << ' '; std::cout << '\n'; v.push_back(6); std::cout << "before push_heap: "; for (auto i : v) std::cout << i << ' '; std::cout << '\n'; std::push_heap(v.begin(), v.end()); std::cout << "after push_heap: "; for (auto i : v) std::cout << i << ' '; std::cout << '\n'; }
出力:
v: 9 5 4 1 1 3 before push_heap: 9 5 4 1 1 3 6 after push_heap: 9 5 6 1 1 3 4
[編集] 参照
| 最大ヒープから最も大きな要素を削除します (関数テンプレート) | 


