首頁 >後端開發 >C++ >C++程式:在陣列中加入一個元素

C++程式:在陣列中加入一個元素

王林
王林轉載
2023-08-25 22:29:214889瀏覽

C++程式:在陣列中加入一個元素

陣列是一種線性順序資料結構,用於在連續的記憶體位置中保存同質資料。與其他資料結構一樣,陣列也必須具備以某種有效方式插入、刪除、遍歷和更新元素的功能。在 C 中,我們的陣列是靜態的。 C 中也提供了一些動態數組結構。對於靜態數組,該數組內可能儲存 Z 個元素。到目前為止,我們已經有 n 個元素了。在本文中,我們將了解如何在 C 中在陣列末尾插入元素(也稱為追加元素)。

透過範例理解概念

‘this’關鍵字的使用方式如下

Given array A = [10, 14, 65, 85, 96, 12, 35, 74, 69]
After inserting 23 at the end, the array will look like this:
[10, 14, 65, 85, 96, 12, 35, 74, 69, 23]

在上面的範例中,假設我們有一個陣列 A,其中最多可以容納 50 個元素。所以,Z 的值為 50。現在先考慮一下,其中有 9 個元素。因此,數組的大小 n 為 9。要在數組末尾插入另一個元素,在我們的範例中為 23。該元素將被放置在末尾,並且 A 中的元素數量將增加 1。因此 n 變為 10。由於我們是在末尾插入,所以過程很簡單。我們可以簡單地在所有元素之後新增元素,而無需更改陣列中任何現有元素的位置。現在讓我們看看演算法以及 C 實作程式碼,以便清楚地理解。

演算法

  • 以陣列 A 作為輸入,元素數量 n 作為輸入,以及將插入到 A 中的元素 e

  • 如果n是

    • A[ n ] = e

  • 結束如果

  • 將 n 增加為 n := n 1

  • #傳回陣列 A 和新大小 n

範例

#include <iostream>
# define Z 50

using namespace std;

void displayArr(int arr[], int n){
   for( int i = 0; i < n; i++ ){
      cout << arr[ i ] << ", ";
   }
   cout << endl;
}
void insertAtEnd( int arr[], int &n, int e ){
   if( n < Z ) {
      arr[ n ] = e;
   }
   n = n + 1;
}

int main() {
   int arr[ Z ] = {57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14};
   int n = 12;
   
   cout << "Array before insertion: ";
   displayArr( arr, n );
   
   cout << "Inserting 58 at the end:" << endl;
   insertAtEnd( arr, n, 58 );
   
   cout << "Array after insertion: ";
   displayArr( arr, n );
   
   cout << "Inserting 225 at the end:" << endl;
   insertAtEnd( arr, n, 225 );
   
   cout << "Array after insertion: ";
   displayArr( arr, n );
}

輸出

Array before insertion: 57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14, 
Inserting 58 at the end:
Array after insertion: 57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14, 58, 
Inserting 225 at the end:
Array after insertion: 57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14, 58, 225,

使用向量附加元素

向量是 C STL 附帶的動態資料結構。我們也可以獲得類似的功能,例如向量中的陣列。在向量內部,我們使用 push_back() 函數來獲得在末尾插入的功能。 push_back 函數將新元素作為參數,並將該元素插入到給定向量的末端。該演算法很簡單。我們不需要做任何特殊的事情,只需透過傳遞我們要插入的新元素來呼叫定向量物件的函數即可。我們直接看C 的實作。

範例

#include <iostream>
#include <vector>
# define Z 50

using namespace std;

void displayArr( vector<int> v ){
   for( int i = 0; i < v.size() ; i++ ){
      cout << v[ i ] << ", ";
   }
   cout << endl;
}

vector<int> insertAtEnd( vector<int> A, int e ){
   A.push_back( e );
   return A;
}

int main() {
   vector<int> A = {57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14};  
   cout << "Array before insertion: ";
   displayArr( A );
   
   cout << "Inserting 58 at the end:" << endl;
   A = insertAtEnd( A, 58 );
   
   cout << "Array after insertion: ";
   displayArr( A );
   
   cout << "Inserting 225 at the end:" << endl;
   A = insertAtEnd( A, 225 );
   
   cout << "Array after insertion: ";
   displayArr( A );
}

輸出

Array before insertion: 57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14, 
Inserting 58 at the end:
Array after insertion: 57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14, 58, 
Inserting 225 at the end:
Array after insertion: 57, 10, 14, 19, 86, 52, 32, 14, 76, 65, 32, 14, 58, 225,

結論

陣列是連續保存同質資料的最簡單的資料結構之一。數組是資料結構。與其他資料結構一樣,我們也可以輕鬆地插入、刪除、更新和遍歷數組元素。在本文中,我們看到了兩種在末尾插入元素的方法,換句話說,將元素追加到陣列中。在第一個方法中,我們在 C 中使用靜態陣列。由於我們的目標是結束位置,因此不需要移動數組中的任何元素,只需在最後一個索引處添加一個新元素,並增加總項目計數參數以供進一步使用。在第二種情況下,我們使用向量。向量就像 C 中的普通數組,但它們本質上是動態的。它會在需要時自動更新其總大小。 C STL 支援向量,向量有一個名為 push_back() 的特殊函數,用於在後面插入元素。但是,我們不能用這種簡單直接的方法在開頭就加入元素。

以上是C++程式:在陣列中加入一個元素的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除