21xrx.com
2024-12-26 02:53:24 Thursday
登录
文章检索 我的文章 写文章
C++ 数组逆序:如何实现数组翻转
2023-07-06 15:29:26 深夜i     --     --
C++ 数组 逆序 翻转

在 C++ 中,数组是一组相同数据类型的元素的集合。我们可以使用数组来存储和访问一组数据。有时候,我们需要对数组进行逆序操作,也就是将数组中的元素按照相反的顺序重新排列。本文将介绍如何在 C++ 中实现数组翻转。

数组翻转有两种方法:in-place 和 out-of-place。in-place 方法是指在原数组中进行操作,而 out-of-place 方法则是创建一个新的数组来存储逆序后的元素。我们分别来看一下这两种方法的具体实现。

in-place 数组翻转

in-place 数组翻转是指通过交换数组中的元素来实现翻转。具体来说,我们可以遍历数组,将数组中的第 i 个元素和第 n-1-i 个元素交换,其中 n 是数组的长度。代码如下:


#include <iostream>

using namespace std;

int main() {

 int arr[] = 2;

 int n = sizeof(arr) / sizeof(arr[0]);

 // 遍历数组并交换元素

 for (int i = 0; i < n / 2; i++) {

  int temp = arr[i];

  arr[i] = arr[n - 1 - i];

  arr[n - 1 - i] = temp;

 }

 // 打印翻转后的数组

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

  cout << arr[i] << " ";

 }

 return 0;

}

out-of-place 数组翻转

out-of-place 数组翻转是指创建一个新的数组来存储逆序后的元素。具体来说,我们可以先创建一个新数组,然后遍历原数组,将原数组中的最后一个元素存入新数组的第一个位置,将倒数第二个元素存入新数组的第二个位置,以此类推,最终得到逆序后的新数组。代码如下:


#include <iostream>

using namespace std;

int main() {

 int arr[] = 2;

 int n = sizeof(arr) / sizeof(arr[0]);

 // 创建新数组并将原数组元素逆序存储

 int new_arr[n];

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

  new_arr[i] = arr[n - 1 - i];

 }

 // 打印翻转后的数组

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

  cout << new_arr[i] << " ";

 }

 return 0;

}

通过以上两种方法,我们可以很容易地实现数组翻转。需要注意的是,在 in-place 方法中,我们只需要交换数组的前半部分元素即可,否则会导致翻转后的数组再次逆序。在 out-of-place 方法中,我们需要创建一个新的数组来存储翻转后的元素,需要预先知道数组的长度,在一些特定的情况下可能会有些不便。因此,在选择方法时,需要根据具体情况灵活选择。

  
  

评论区

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