给出一个二维数组,例如。
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}};我使用heapsort algo来获得这个,但是我每次都要写完整的代码。我想知道一些使用c++标准函数实现这一点的方法。plzz谁来帮我解决这个问题:)
发布于 2015-09-02 03:18:31
使用当前的算法,您需要将两个范围“压缩”到两个范围中的元素的公共视图中,并根据第一个范围的键进行排序。创建相应的随机访问迭代器大部分都是直接的,除了一些不幸的约束,即operator*()应该产生对相应元素的引用。
我认为Boost有一个zip-range来提供相应的功能。
https://stackoverflow.com/questions/32339133
复制相似问题