我有一个二维数组int a [8] [2]。我想使用另一个数组Order [8] = {7,1,0,2,3,6,5, 4}。 我试过了,但是没用。
int result[8][2];
void Rearrange_Vector(int* a,int* order)
{
int temp;
int ii =0;
for ( ii=0;ii<8;ii++)
{
temp = *Order;
result[ii][0] = *(a + temp*sizeof(int));
Order++;
}
有帮助吗?
答案 0 :(得分:0)
您应该将2D数组解释为指向指针的指针,并交换行起始指针:
pushState: false
通过从指针转换为数组作为函数参数,您可以得到编译器的另一项好处,即检查#include <algorithm>
int array[8][2];
template<int Rows, int Cols>
void sort(int (&array)[Rows][Cols], int (&order)[Rows]) {
for (int r = 0; r < Rows; ++r) {
std::swap_ranges(&array[r][0], &array[r][Cols], &order[r]);
}
}
int main() {
int order[8] = {7,1,0,2,3,6,5,4};
sort(array, order);
return 0;
}
数组是否具有与order
中的行数相同的元素数。