按一对数组元素的和对向量排序 我只是玩C++排序和lambda,想知道是否可以按元素排序元素? 例如: std::sort(my_vector.begin(), my_vector.end(), [&, sum](int a, int b){ return a + b == sum; });

按一对数组元素的和对向量排序 我只是玩C++排序和lambda,想知道是否可以按元素排序元素? 例如: std::sort(my_vector.begin(), my_vector.end(), [&, sum](int a, int b){ return a + b == sum; });,c++,sorting,c++11,lambda,C++,Sorting,C++11,Lambda,我尝试了上面的方法,它给出了一个运行时错误:“表达式:无效运算符需要一个比较元素的谓词。该谓词必须建立,其中一个重要属性是ifpred(a,b)返回true,pred(b,a)必须返回false。您的lambda不满足此属性。什么的总和?排序需要一个我已经得到了它,因此我要求一个不使用迭代器的替代解决方案!@ProblemSolver我很高兴您得到了它,因为我仍然没有。请清楚地解释您想要如何排序。给我一个两个元素的示例,以及CHONE更大。这不是std::sort的作业。它更接近std::par

我尝试了上面的方法,它给出了一个运行时错误:
“表达式:无效运算符需要一个比较元素的谓词。该谓词必须建立,其中一个重要属性是if
pred(a,b)
返回true,
pred(b,a)
必须返回false。您的lambda不满足此属性。

什么的总和?排序需要一个
我已经得到了它,因此我要求一个不使用迭代器的替代解决方案!@ProblemSolver我很高兴您得到了它,因为我仍然没有。请清楚地解释您想要如何排序。给我一个两个元素的示例,以及CHONE更大。这不是
std::sort
的作业。它更接近
std::partition
,但仍然不是真正正确的(
std::partition
对单个元素起作用,而不是找到满足谓词的对)。我很确定您一直在这里编写自己的代码。但是预分组列表甚至不包含与后分组列表相同的元素。编译时要求
sort
是严格的弱排序…只是逻辑排序。我可以使用
[](int,int){return false}对向量进行排序
。那会很愚蠢,但我能做到。@Barry:好吧,你可以用它来编译。运行时会发生什么是另一个问题。@JerryCoffin是的,我知道。这就是为什么我对
“表达式:无效运算符@Barry不清楚你的观点或参数是什么。好的,似乎没有使用迭代器就无法实现这一点-无论如何,感谢大家的帮助。