C ++排序长deque

时间:2016-06-30 09:27:18

标签: c++ sorting std

我试图对双子座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

Specific case 提前感谢您的回答,我无法找到问题所在。

0 个答案:

没有答案