c 動態陣列

2021-07-06 03:55:30 字數 1237 閱讀 6523

c#中的陣列是可以動態分配長度的,實現動態陣列有以下幾種途徑,這裡說的動態陣列包括動態分配大小和動態增加資料.

先來看原始陣列:

int m = 5;

int array = newint[m];

array[0] = 2;

label1.text = array[0].tostring() + " + " +array.length.tostring();

結果的輸出自然是 2 + 5;

動態分配:

1:m++;

array = newint[m];//相當於重新初始化,原來的值被沖掉了

label2.text =array[0].tostring() + " + " + array.length.tostring();

結果輸出自然是 0 + 6;

2:

m++;

array.resize(ref array,m);

label2.text =array[0].tostring() + " + " + array.length.tostring();

結果輸出自然是 2 + 6;

3:再有就是通過arraylist的方法

第1種方案適合能夠事先能從某處讀出來長度的情況;第2,3種方案最適合在事先不知道資料長度究竟有多少,只能來乙個算乙個的情況,個人感覺,這才是動態陣列真正的用途,也就是能夠隨著資料的增加而自動擴容。

在這方面arraylist毫無疑問是首選,能夠真正實現這個功能.

arraylist 

al  =

newarraylist();

al.add(

newdata

);//

單個新增

如果增加的是同一型別的資料,用array.resize()也是能夠實現的:

if(產生了新資料)//增加個判斷

雖然有同樣的效果,但本質上是有差異的.arraylist是真正的在變長.而

system.array.resize這個泛型方法是重新建立新設定大小的陣列,用的是舊陣列的元素初始化。隨後以前的陣列就廢棄!也就是說並不是在原先的基礎上擴容,而是新建了乙個.但是無論如何在表面上看來確實實現了我們想要的功能.

C 動態陣列

原 1.變長一維陣列 這裡說的變長陣列是指在編譯時不能確定陣列長度,程式在執行時需要動態分配記憶體空間的陣列。實現變長陣列最簡單的是變長一維陣列,你可以這樣做 1 檔名 array01.cpp 2 include 3 using namespace std 4 int main 5 注意int p ...

c 動態陣列

在建立動態陣列的過程中我們要遵循乙個原則,那就是在建立的時候從外層往裡層,逐層建立 而釋放的時候從裡層往外層,逐層釋放。這個話你讀了可能理解並不深刻,不過不要急,接下來我們看看兩段 一維動態陣列的建立 include include int main int n1,i int array print...

c 動態陣列

這學期學c 晚上有道程式設計題,比較坑,感覺要用動態陣列做,但實際就是要用靜態陣列,因為動態的反而更難了。用動態陣列的時候,發現自己只會建立一維的 int a new int 5 然後二維陣列怎麼創都忘記了,還是那句話 不寫 很容易 忘記。然後下面就給出幾個例子吧 cpp view plain co...