运用指针数组循环位移
时间: 2024-03-29 18:32:57 浏览: 64
运用指针数组进行循环位移是一种常见的编程技巧,可以用于对数组中的元素进行循环移动。下面是一个简单的示例代码:
```c++
#include <iostream>
using namespace std;
void rotateArray(int* arr, int size, int shift) {
int* temp = new int[size]; // 创建一个临时数组,用于保存移动后的元素
for (int i = 0; i < size; i++) {
temp[(i + shift) % size] = arr[i]; // 将原数组中的元素按照循环位移的规则放入临时数组中
}
for (int i = 0; i < size; i++) {
arr[i] = temp[i]; // 将临时数组中的元素复制回原数组
}
delete[] temp; // 释放临时数组的内存空间
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(arr[0]);
int shift = 2;
cout << "原始数组:";
for (int i = 0; i < size; i++) {
cout << arr[i] << " ";
}
cout << endl;
rotateArray(arr, size, shift);
cout << "循环位移后的数组:";
for (int i = 0; i < size; i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
```
上述代码中,`rotateArray`函数接受一个指针数组、数组的大小和位移量作为参数,通过创建一个临时数组来保存移动后的元素。然后,使用循环将原数组中的元素按照循环位移的规则放入临时数组中,并将临时数组中的元素复制回原数组。最后,释放临时数组的内存空间。
阅读全文