c++语言数组左移一位
时间: 2024-10-21 11:06:29 浏览: 33
数组循环左移 c++实现
在C++中,数组左移一位是指将整个数组的所有元素向左移动一位,即将每个元素的值替换为其左侧元素的值,同时最后一个元素会填充到第一个位置。这个操作通常通过数组索引来实现,因为数组下标是从0开始的,所以左移一位等价于每个元素的下标加一。
如果你有一个整数类型的数组`arr`,其长度为`n`,你可以创建一个新的数组`new_arr`,然后逐个复制并调整元素:
```cpp
int arr[n]; // 假设已经初始化了arr
// 数组左移一位
for (int i = 0; i < n; ++i) {
new_arr[i] = arr[(i + 1) % n]; // 使用(i+1)%n确保不会超出数组边界
}
// 或者可以使用更简洁的方式(假设n是2的幂)
if (n && !!(n & (n - 1))) { // 判断是否可以简化,如n=4,7等
int* temp = new_arr;
for (int i = 0; i < n / 2; ++i) {
*temp++ = arr[i];
*temp++ = arr[i + n / 2];
}
}
```
阅读全文