c++ - <algorithm> 排序自定义条件

标签 c++ sorting stl-algorithm

好的,所以我尝试对项目的 vector 进行排序,因此两个相邻项目的大小 <= 2d。 所以这是我的尝试:

struct item{
    long number;
    long size;
};

// d is global variable.
bool check(const item& x, const item& y)
{
    return ((x.size + y.size) <= (2 * d));
}

// Items is a vector of item.
sort(items.begin(), items.end(), check); 

我做错了什么,或者甚至不可能使用这样的条件进行排序?

最佳答案

it's even impossible to sort using condition like that ?

没有。 sort 中的比较器必须满足 strict weak ordering 的标准你的显然不是(例如它不是反身的)。

关于c++ - <algorithm> 排序自定义条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5135216/

相关文章:

c++ - 为什么taskset对fedora没有影响?

php - 在PHP中的每个级别递归排序多维数组

c++ - 类指针 vector 上的 std::sort()

javascript - 当数据改变时组织数组

c++ - 使用与滥用通用算法

c++ - 从容器中元素的成员函数中累积结果

c++ - 如何在 C++ 中使用 x XPath 表达式查询 HTML?

c++ - 无法在 Solaris 10 上使用 GCC 5.5 包含 cmath

c++ - 使用字符串文字初始化时,std::strings 是否以 '\0' 结尾?

c++ - 在 C++ 中按升序对数组集进行排序