对内部包含许多数字的结构进行排序



我想对一个结构数组进行排序,其中每个结构都有一个数组。我想为排序创建自定义 compare() 函数,但还不能:

struct box{
    int dims[6];
} boxArray[32];
所以,有

32个盒子,每个盒子有6个维度。

例如

框1具有以下尺寸:

1 2 5 10 20 30

方框2:

1 2 3 4 5 6 9

我希望 box2 在 box1 之前排序,因为在前两个维度中它们是相等的,但在下一个维度中,框 2 更小。

我的想法是使用排序

(boxArray,boxArray+32,customCmpBoxes)

在自定义函数中,递归比较,直到一个更小(或不更小),但我无法让它工作。

bool customCmpBoxes(const box& left, const box& right) {
  return std::lexicographical_compare(
    left.dims, left.dims + sizeof(left.dims)/sizeof(left.dims[0]),
    right.dims, right.dims + sizeof(right.dims)/sizeof(right.dims[0]));
}

相关内容

  • 没有找到相关文章

最新更新