std::greater{} 和 std::greater<int>() 有什么区别?

有些人写

std::nth_element(v.begin(), v.begin()+1, v.end(), std::greater{});

还有一些是这样写的

std::nth_element(v.begin(), v.begin()+1, v.end(), std::greater<int>());

之间是什么THRE diffrencestd::greater{}std::greater<int>()

回答

这是 C++14 的新功能,这导致了两个完全不同的类。

在 C++14 中,std::greater为其模板参数获取默认值:void

您最终会得到std::greater<void>std::greater<int>

std::greater<void>是推导其参数的所谓“透明”比较器的特化,请参阅其参考以获取更多信息。


以上是std::greater{} 和 std::greater&lt;int&gt;() 有什么区别?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>