如何管理其他行的元素,而排序某些特定的行

How to manage elements of other row while sorting some particular row?

本文关键字:排序 元素 管理 其他 何管理      更新时间:2023-10-16

给定一个二维数组,例如

int  arr[2][5] = { {5 , 3 , 4 , 1 , 2},{7 , 4 , 0 , 8 , 2}};

现在我按升序排序第一行,相应的第二行元素也被移位。修改后的二维数组

int arr[2][5] = { {1 , 2 , 3 , 4 , 5},{8 , 2 , 4 , 0 , 7}};

我使用堆排序算法来实现这一点,但我每次都要写完整的代码。我想知道一些方法来实现这个使用c++标准函数。PLZZ谁来帮帮我:)

使用当前的算法,您需要将两个范围"压缩"到根据第一个范围的键排序的两个范围的元素的公共视图中。创建相应的随机访问迭代器基本上是直接的,除了operator*()应该产生对各自元素的引用这一有点不幸的约束。

我认为Boost有一个zip-range提供相应的功能。