使用指针翻转数组
array flipping with pointers
int* m = new int [d1*d2];
ptr1 = m;
ptr2 = m + (d2*(d1-1));
if ( *ptr1 != *ptr2){
temp = ptr2;
ptr2 = ptr1;
ptr1 = temp;
}
ptr1 +=d2;
ptr2 -= d2;
为了做
从4 1 73
5 2
5 2 73
4 1
这是我到目前为止想出的,几乎什么都没有。我在寻找适合的循环时遇到了问题
把整行倒过来,然后每行倒过来:
row/col representation:
4 1 => 2 5 => 5 2
5 2 1 4 4 1
actual layout of m:
4 1 5 2 => 2 5 1 4 => 5 2 4 1
需要两个循环,一个用于要翻转的行,然后翻转该行上的每个元素。当翻转3x2矩阵时,int row
从0到2,int column
从0到1
在前面的回答中已经描述了更好的方法。所以我的回答将解释为什么你的输出没有任何变化。你交换的是指针而不是值。你要做的是:
temp = *ptr2;
*ptr2 = *ptr1;
*ptr1 = temp;
--ptr2;
++ptr1;
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- 将数组的地址分配给变量并删除
- 从C++本机插件更新Vector3数组
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 数组索引的值没有增加
- 将对象数组的引用传递给函数
- 为char数组调整zlib-zpipe
- 2D数组来自文本输入,中间有空格
- std::向量与传递值的动态数组
- 在c++中用vector填充一个简单的动态数组
- 使用strcpy将char数组的元素复制到另一个数组
- 使用指针从C++中的数组中获取最大值
- C++使用整数的压缩数组初始化对象
- 如何从上到下翻转 2D 数组?
- 如何翻转数组的一部分
- 如何翻转数组中的某些数字
- 水平翻转数组
- 通过翻转单元格组来用零填充二维数组
- 使用指针翻转数组