私は優先度キューオブジェクトのインスタンス化を理解するために次のコードを持っています。priorty_queueインスタンシエーションのコンパレータのテンプレートパラメータに質問しないのはなぜですか?
#include <queue>
#include <functional>
int main(int argc, char *argv[])
{
std::priority_queue<int, std::vector<int>, std::greater<>> int_min_heap;
return 0;
}
priority_queueテンプレートの3番目のパラメータは、コンパレータ関数です。私は 'std :: greater'を使っています。テンプレートのインスタンスの
これは私がSTDにPARAMTERを与えられていないとして、これはコンパイルに失敗することが期待されたが、成功してコンパイルされた::大きい(私ごとなど)正しい方法すなわち
std::priority_queue<int, std::vector<int>, std::greater<int>> int_min_heap;
です私は入力パラメータなしでstd :: greaterの定義を見つけることができました。
誰も私が理解に欠けていることを指摘できますか?
テンプレート'std :: greater'のパラメータにはデフォルトの引数があります。これは' void'です。 –
"*入力パラメータなしでstd :: greaterの定義を見つけることはできませんでした。*"あなたは[1つを探しましたか?](http://en.cppreference.com/w/cpp/utility/functional/greater ) –
@NicolBolas [www.cplusplus.com/](http://www.cplusplus.com/reference/functional/greater/)で調べたところ、混乱の原因になっていました。私はほとんどの場合、cplusplus.comを参照してください。今私はcppreference.comをチェックする理由がある。ありがとう。 – UnSat