21xrx.com
2024-09-20 00:14:31 Friday
登录
文章检索 我的文章 写文章
C++ 数组移位操作
2023-07-04 14:08:36 深夜i     --     --
C++ 数组 移位操作

C++ 数组移位操作是指将数组中的元素向左或向右移动一定的位置。这种操作在编程中经常用到,比如对数据进行排序,或实现数组的循环移位等。

在C++中,我们可以使用循环遍历数组来完成移位操作。具体来说,对于向左移动n个位置的操作,我们可以先将前n个元素保存在一个缓存列表中,然后将数组中的后n个元素依次挪到前面,最后再将缓存列表中的元素依次放回数组的右边。

代码示例如下:


void shiftLeft(int arr[], int n, int k) {

  int temp[k];

  for (int i = 0; i < k; i++) {

    temp[i] = arr[i];

  }

  for (int i = k; i < n; i++) {

    arr[i-k] = arr[i];

  }

  for (int i = 0; i < k; i++) {

    arr[n-k+i] = temp[i];

  }

}

对于向右移动n个位置的操作,我们可以类似地将后n个元素保存在一个缓存列表中,然后将前面的元素向右依次移动,最后再将缓存列表中的元素放回数组的左边。

代码示例如下:


void shiftRight(int arr[], int n, int k) {

  int temp[k];

  for (int i = n-k; i < n; i++) {

    temp[i-(n-k)] = arr[i];

  }

  for (int i = n-k-1; i >= 0; i--) {

    arr[i+k] = arr[i];

  }

  for (int i = 0; i < k; i++) {

    arr[i] = temp[i];

  }

}

需要注意的是,如果移动的位数大于数组长度,那么需要做取模处理。

总之,C++ 数组移位操作是非常有用的工具,熟练掌握它能够提高我们在编程中的效率。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复