2017-04-18 18 views
-2

最小プライオリティキューが必要な場合は、Compareクラスをstd:greaterと宣言します。どのようなものですかreturn obj1 > obj2プライオリティキューのクラス比較

どのように優先度キューがそれを使用するのですか?挿入時にそれを適用しますか? pop()の後に "heapify"に使用してください。

私たちは挿入時に知っている、新しい要素はできるだけ浮かんでいました。だから、挿入が大きい場合は、obj1は親でしょうか? obj2は新しい要素そのものになりますか?

+2

sift_up、push_heap:下記のリンク http://llvm.org/svn/llvm-project/libcxx/trunk/include/algorithm

キーワードです。 –

+0

標準でソートの仕組みが指定されているかどうかはわかりませんが(私はそれが暗示されていると思われますが、それは暗示しているかもしれませんが)、いくつかの複雑さを指定しています。 ['std :: priority_queue :: push'](http://en.cppreference.com/w/cpp/container/priority_queue/push)、 [' std :: priority_queue :: emplace'](http:// en.cppreference.com/w/cpp/container/priority_queue/emplace)と['std :: priority_queue :: pop'](http://en.cppreference.com/w/cpp/container/priority_queue/pop)は次のとおりです。対数的な比較数に加えて、最下位にあるコンテナのマッチング操作の複雑さを加えたものです。 –

答えて

1

私はSTLのソースコードを見て、Compare関数がどのように使用されているかを知ることができます。答えはイエスである、すべてのご質問

if (Compare(parent, children)) 
    do the swap 
+0

この回答はコメントにする必要があります。 –