C++程式:將一個數組的所有元素複製到另一個數組


陣列資料結構用於儲存同類型的資料到連續的記憶體位置,以便以順序方式訪問它們。陣列是線性資料結構,因此可以線上性時間內執行陣列的基本操作。在本文中,我們將瞭解如何在 C++ 中將一個數組的元素複製到另一個新陣列。

由於陣列元素是同類型的,因此新陣列將具有相同的型別。在建立另一個相同大小的陣列後,我們只需將第一個陣列中的元素逐個複製到第二個陣列中。讓我們看看演算法和 C++ 實現,以便更好地理解。

演算法

  • 讀取陣列 A 及其大小 n 作為輸入
  • 建立一個大小與 A 相同(為 n)的空陣列 B
  • 對於 i 從 0 到 n-1,執行以下操作:
    • B[ i ] := A[ i ]
  • 結束迴圈

示例

#include <iostream>
using namespace std;
void display( int arr[], int n ){
   for ( int i = 0; i < n; i++ ) {
      cout << arr[i] << ", ";
   }
}
void solve( int arr[], int newArr[], int n ){
   int i;
   for ( i = 0; i < n; i++ ) {
      newArr[ i ] = arr [ i ];
   }
}
int main(){
   int arr[] = {9, 15, 24, 28, 20, 6, 12, 78, 2, 12, 78, 44, 25, 115, 255, 14, 96, 84 };
   int n = sizeof( arr ) / sizeof( arr[0] );
   cout << "Given array: ";
   display(arr, n);
   int newArray[n] = {0};
   solve( arr, newArray, n );
   cout << "\nArray After copying: ";
   display(newArray, n);
}

輸出

Given array: 9, 15, 24, 28, 20, 6, 12, 78, 2, 12, 78, 44, 25, 115, 255, 14, 96, 84, 
Array After copying: 9, 15, 24, 28, 20, 6, 12, 78, 2, 12, 78, 44, 25, 115, 255, 14, 96, 84,

結論

從一個數組複製元素是基於陣列的程式設計中最簡單的任務之一。我們建立一個新的陣列,其大小至少為給定陣列的大小。然後,我們遍歷給定陣列的每個索引,然後將元素從給定陣列複製到新陣列。由於它不需要遍歷陣列超過一次,因此可以線上性時間內執行此操作,因此漸近上界為 O(n)。對於空間使用情況,它也需要為新陣列分配相同數量的空間。它需要 O(n) 的空間來將元素複製到新陣列。

更新於: 2022-12-14

3K+ 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.