大佬教程收集整理的这篇文章主要介绍了c – 按偶数和奇数排序,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_502_7@我有以下代码,但我不知道如何在std :: sort中实现
@H_502_7@
inline bool isEven(const Point n) { return n.getX()%2==0; }@H_502_7@它是否正确 @H_502_7@
vector<Point> c; std::sort(c.begin(),c.end(),isEven)@H_502_7@请指教.
std::partition
就会做到这一点.
@H_502_7@@H_502_7@如果你想按升序值排序并分开奇数和偶数,我会使用类似于这段代码的东西(仍然,你必须找出你想要排序的Point的哪个组件)
@H_502_7@
bool sortByEven(const int& left,const int& right) { if(left & 1 && right & 1) // both are odd { return left < right; } else if(left & 1) // left is odd { return false; } else if(right & 1) // right is odd { return true; } // both are even return left < right; }@H_502_7@此功能可与
std::sort
一起使用,这是一个简短的例子:
@H_502_7@
std::vector<int> numbers; numbers.push_BACk(-1); numbers.push_BACk(5); numbers.push_BACk(12); numbers.push_BACk(7); numbers.push_BACk(-31); numbers.push_BACk(-20); numbers.push_BACk(0); numbers.push_BACk(41); numbers.push_BACk(16); std::sort(numbers.begin(),numbers.end(),sortByEven);@H_502_7@会给你以下输出: @H_502_7@
-20 0 12 16 -31 -1 5 7 41@H_502_7@对于其他类型,只需更改int或使其成为模板参数
以上是大佬教程为你收集整理的c – 按偶数和奇数排序全部内容,希望文章能够帮你解决c – 按偶数和奇数排序所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。