C++ 根据元组成员的整数值对元组列表进行排序

C++ 根据元组成员的整数值对元组列表进行排序,c++,halide,C++,Halide,我有Halide func,它在灰度图像上迭代,并在3x3面片中找到最高的灰度值。我使用RDOM搜索3x3面片中的最大灰度值,它返回X,Y位置的元组,它们是3x3区域中的最大灰度值 MaxValue(x,y)=(rdom,Value(rdom.x.extent()*x+rdom.x,rdom.y.extent()*y+rdom.y),“maxValue3x3”) 此外,我想根据最大值(MaxValue(x,y)[2]的升序对MaxValue进行排序。当我尝试使用合并排序算法时,与中的实现方式类似

我有Halide func,它在灰度图像上迭代,并在3x3面片中找到最高的灰度值。我使用RDOM搜索3x3面片中的最大灰度值,它返回X,Y位置的元组,它们是3x3区域中的最大灰度值

MaxValue(x,y)=(rdom,Value(rdom.x.extent()*x+rdom.x,rdom.y.extent()*y+rdom.y),“maxValue3x3”)

此外,我想根据最大值(MaxValue(x,y)[2]的升序对MaxValue进行排序。当我尝试使用合并排序算法时,与中的实现方式类似,我找不到保持元组的其他两个输出(即x,y)的方法同样的顺序。这个方法是正确的方向,还是我做得不对


谢谢

请显示a。您是否在寻找a?我正在尝试实现合并排序,但使用的是Halide。我已经在我试图遵循的问题中添加了一个示例的链接,以及生成Halide::tuple输出的确切代码行。我是否应该添加其他aso?a需要在问题中自我包含,而不依赖在外部链接上进行排序您可以只使用原始数组的索引。要转换为行/列,只需使用除法和模数。例如,对“x,rand(x)”集合进行排序,并根据“rand(x)”值进行排序。“x”是原始位置。“x”将表示排序顺序的排列。如果要查找max()位置,您只需要使用
select()
记录此元素的位置。