给出例如。
的2D数组int arr[2][5] = { {5 , 3 , 4 , 1 , 2},{7 , 4 , 0 , 8 , 2}};
现在我按升序排序第一行,相应地第二行元素也被移位。 改变了2D阵列
int arr[2][5] = { {1 , 2 , 3 , 4 , 5},{8 , 2 , 4 , 0 , 7}};
我正在使用heapsort算法来实现这一点但我必须每次编写完整的代码。 我想知道一些使用c ++标准函数实现这一点的方法。 plzz有人帮我解决这个问题:)
答案 0 :(得分:0)
使用当前算法,您需要将两个范围“压缩”为根据第一个范围的键排序的两个范围的元素的公共视图。创建一个相应的随机访问迭代器大多是直截了当的,除了operator*()
应该产生对各个元素的引用的一些不幸的约束。
我认为Boost有一个提供相应功能的zip-range。