C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了C中更大/更小的函数对象大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_616_1@我已经通过函数对象文档了解更多,更少.我有点理解其中的内容,但我还没有得到它.是否会按升序或降序对我的容器进行更大的排序?我特别困惑,因为以下两行似乎在做相反的事情.
std::priority_queue<int,std::vector<int>,std::greater<int> > q2;

for(int n : {1,8,5,6,3,4,9,7,2})
    q2.push(n);

print_queue(p2);

这打印0,1,2,9.但是,

int x[10] = { 1,10 };
std::sort(x,x+10,std::greater<int>());

打印这将给出10,1.

如果有人能够在我的例子中描述“更大”的作用,那将是很好的,而不仅仅是说“更大”的作用.

解决方法

它将升序,您将始终弹出队列中的最小元素.优先级队列的排序与给定的顺序关系相反.

认模板定义如下所示:

template<
    class T,class Container = std::vector<T>,class Compare = std::less<typename Container::value_type>
> class priority_queue;

它应用较少的<>()(lhs,rhs)来获得“最大”的rhs元素.但在你的情况下,它将应用更大的<>()(lhs,rhs)来获得“最大”的rhs元素(当然它将是最小的).

另一方面,std :: sort保留了您提供的订单类型.所以std :: less将按升序排序,std :: greater按降序排序.

大佬总结

以上是大佬教程为你收集整理的C中更大/更小的函数对象全部内容,希望文章能够帮你解决C中更大/更小的函数对象所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。