C++ new數組詳解

一、C++ new數組

int* arr = new int[10]; // 分配一個有10個int型元素的數組

C++的new運算符除了用於創建單個對象外,還可以用於創建一個數組。與C的動態內存分配相同,使用new創建數組時需要指定元素的個數。上面的代碼創建了一個有10個int型元素的數組,arr指向該數組。

同樣地,我們可以使用delete運算符來釋放該數組的內存:

delete[] arr; // 釋放動態分配的數組內存

二、new動態數組

int n;
cin >> n;
double* arr = new double[n];

上面的代碼創建了一個具有n個double型元素的數組。

三、C++ new數組初始化

int arr[] = {1, 2, 3, 4};
int* pArr = new int[4]{1, 2, 3, 4};

使用new[]創建數組時,可以用大括號{}來初始化數組的元素。上面的代碼創建了兩個具有4個int型元素的數組,並分別對它們進行了初始化。

四、new byte數組

int size = 10; // 申請10個字節
byte* arr = new byte[size];

C++中的byte類型用於表示存儲空間中的單個字節,因此,可以使用它來申請特定大小的內存。

五、C++ new數組時傳變量

int size;
cin >> size;
float* arr = new float[size];

C++允許使用變量來定義需要分配的內存大小。上面的代碼就是一個例子。

六、new string數組

string* arr = new string[3];
arr[0] = "Hello";
arr[1] = "World";
arr[2] = "!";

除了基本類型,new[]也可以用於創建數組對象,例如string。上面的代碼創建了一個具有3個string類型元素的數組,並對它們進行了賦值。

七、C++ new數組調用構造函數

class MyClass {
public:
    MyClass(int n) {...}
    ~MyClass() {...}
};
MyClass* pArr = new MyClass[10]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

如果我們想要使用構造函數對數組中的元素進行初始化,可以使用大括號{}傳遞初始化參數。

八、new char數組

char* buffer = new char[256];
memset(buffer, 0, sizeof(char)*256);

C++還允許我們使用new[]來創建char類型的數組。上面的代碼創建了一個有256個char類型元素的數組,並對它們進行了清空操作。

九、C++ new數組不夠用再分配

int* arr = new int[10];
// 申請20個int型元素,並把原來數組的值複製過去
int* newArr = new int[20];
memcpy(newArr, arr, sizeof(int)*10);
delete[] arr; // 釋放原來數組的內存
arr = newArr;

有時候,我們在程序運行時需要對已經創建的數組進行擴充,此時可以使用new[]創建新的數組,並把原來數組的元素複製到新數組中。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/187809.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-28 06:27
下一篇 2024-11-28 06:27

相關推薦

  • Python中new和init的區別

    new和init都是Python中常用的魔法方法,它們分別負責對象的創建和初始化,本文將從多個角度詳細闡述它們的區別。 一、創建對象 new方法是用來創建一個對象的,它是一個類級別…

    編程 2025-04-29
  • Python導入數組

    本文將為您詳細闡述Python導入數組的方法、優勢、適用場景等方面,並附上代碼示例。 一、numpy庫的使用 numpy是Python中一個強大的數學庫,其中提供了非常豐富的數學函…

    編程 2025-04-29
  • Python返回數組:一次性搞定多種數據類型

    Python是一種多用途的高級編程語言,具有高效性和易讀性的特點,因此被廣泛應用於數據科學、機器學習、Web開發、遊戲開發等各個領域。其中,Python返回數組也是一項非常強大的功…

    編程 2025-04-29
  • Python去掉數組的中括號

    在Python中,被中括號包裹的數據結構是列表,列表是Python中非常常見的數據類型之一。但是,有些時候我們需要將列表展開成一維的數組,並且去掉中括號。本文將為大家詳細介紹如何用…

    編程 2025-04-29
  • Python操作數組

    本文將從多個方面詳細介紹如何使用Python操作5個數組成的列表。 一、數組的定義 數組是一種用於存儲相同類型數據的數據結構。Python中的數組是通過列表來實現的,列表中可以存放…

    編程 2025-04-29
  • Python二維數組對齊輸出

    本文將從多個方面詳細闡述Python二維數組對齊輸出的方法與技巧。 一、格式化輸出 Python中提供了格式化輸出的方法,可以對輸出的字符串進行格式化處理。 names = [‘A…

    編程 2025-04-29
  • Java創建一個有10萬個元素的數組

    本文將從以下方面對Java創建一個有10萬個元素的數組進行詳細闡述: 一、基本介紹 Java是一種面向對象的編程語言,其強大的數組功能可以支持創建大規模的多維數組以及各種複雜的數據…

    編程 2025-04-28
  • Python數組隨機分組用法介紹

    Python數組隨機分組是一個在數據分析與處理中常用的技術,它可以將一個大的數據集分成若干組,以便於進行處理和分析。本文將從多個方面對Python數組隨機分組進行詳細的闡述,包括使…

    編程 2025-04-28
  • Python數組索引位置用法介紹

    Python是一門多用途的編程語言,它有着非常強大的數據處理能力。數組是其中一個非常重要的數據類型之一。Python支持多種方式來操作數組的索引位置,我們可以從以下幾個方面對Pyt…

    編程 2025-04-28
  • Python語言數組從大到小排序符號的用法介紹

    當我們使用Python進行編程的時候,經常需要對數組進行排序從而使數組更加有序,而數組的排序方式有很多,其中從大到小排序符號是一種常見的排序方式。本文將從多個方面對Python語言…

    編程 2025-04-28

發表回復

登錄後才能評論