我试图对双子座deque<data> sortDValues
的前半部分进行排序
struct data {
int dValue;
int index;
};
由dValue
使用带有lambda表达式的c ++函数
sort(sortDValues.begin(), sortDValues.begin() + partASize - i,
[](data const &a, data const &b) { return a.dValue > b.dValue; });
这种方法大部分时间都适用,但在某些特殊情况下,最终的程序会失败。我找到了,问题出现在sort
函数中,然而,我无法弄明白,为什么。
我不确定,如果它与填充此dequeue
deque<data> sortDValues;
for(number n : indices)
{
if(perm[n] >= partASize)
sortDValues.push_back(dValues[n]);
else
sortDValues.push_front(dValues[n]);
}
我可以举一个具体的问题:第一个数字是index
,第二个是dValue
: