C 動態陣列

2021-07-05 11:22:47 字數 4194 閱讀 6801

system.collections.arraylist類是乙個特殊的陣列。通過新增和刪除元素,就可以動態改變陣列的長度。

1。支援自動改變大小的功能

2。可以靈活的插入元素

3。可以靈活的刪除元素

跟一般的陣列比起來,速度上差些

將物件新增到arraylist的結尾處

arraylist alist=newarraylist();

alist.add("a");

alist.add("b");

alist.add("c");

alist.add("d");

alist.add("e");

內容為abcde

將元素插入arraylist的指定索引處

arraylist alist=newarraylist();

alist.add("a");

alist.add("b");

alist.add("c");

alist.add("d");

alist.add("e");

alist.insert(0,"aa");

結果為aaabcde

將集合中的某個元素插入arraylist的指定索引處

arraylist alist=newarraylist();

alist.add("a");

alist.add("b");

alist.add("c");

alist.add("d");

alist.add("e");

arraylistlist2=newarraylist();

list2.add("tt");

list2.add("ttt");

alist.insertrange(2,list2);

結果為abtttttcde

從arraylist中移除特定物件的第乙個匹配項,注意是第乙個

arraylistalist=newarraylist();

alist.add("a");

alist.add("b");

alist.add("c");

alist.add("d");

alist.add("e");

alist.remove("a");

結果為bcde

移除arraylist的指定索引處的元素

alist.add("a");

alist.add("b");

alist.add("c");

alist.add("d");

alist.add("e");

alist.removeat(0);

結果為bcde

從arraylist中移除一定範圍的元素。index表示索引,count表示從索引處開始的數目

alist.add("a");

alist.add("b");

alist.add("c");

alist.add("d");

alist.add("e");

alist.removerange(1,3);

結果為ae

從arraylist中移除所有元素。

a)publicvirtualvoidsort();

對arraylist或它的一部分中的元素進行排序。

arraylistalist=newarraylist();

alist.add("e");

alist.add("a");

alist.add("b");

alist.add("c");

alist.add("d");

dropdownlist1.datasource=alist;//dropdownlistdropdownlist1;

dropdownlist1.databind();

結果為eabcd

arraylistalist=newarraylist();

alist.add("a");

alist.add("b");

alist.add("c");

alist.add("d");

alist.add("e");

alist.sort();//排序

dropdownlist1.datasource=alist;//dropdownlistdropdownlist1;

dropdownlist1.databind();

結果為abcde

b)publicvirtualvoidreverse();

將arraylist或它的一部分中元素的順序反轉。

arraylistalist=newarraylist();

alist.add("a");

alist.add("b");

alist.add("c");

alist.add("d");

alist.add("e");

alist.reverse();//反轉

dropdownlist1.datasource=alist;//dropdownlistdropdownlist1;

dropdownlist1.databind();

結果為edcba

a)publicvirtualintindexof(object);

b)publicvirtualintindexof(object,int);

c)publicvirtualintindexof(object,int,int);

返回arraylist或它的一部分中某個值的第乙個匹配項的從零開始的索引。沒找到返回-1。

arraylistalist=newarraylist();

alist.add("a");

alist.add("b");

alist.add("c");

alist.add("d");

alist.add("e");

intnindex=alist.indexof(「a」);//1

nindex=alist.indexof(「p」);//沒找到,-1

d)publicvirtualintlastindexof(object);

e)publicvirtualintlastindexof(object,int);

f)publicvirtualintlastindexof(object,int,int);

返回arraylist或它的一部分中某個值的最後乙個匹配項的從零開始的索引。

arraylistalist=newarraylist();

alist.add("a");

alist.add("b");

alist.add("a");//同0

alist.add("d");

alist.add("e");

intnindex=alist.lastindexof("a");//值為2而不是0

g)publicvirtualboolcontains(objectitem);

確定某個元素是否在arraylist中。包含返回true,否則返回false

獲取或設定arraylist可包含的元素數。

獲取arraylist中實際包含的元素數。

capacity是arraylist可以儲存的元素數。count是arraylist中實際包含的元素數。capacity總是大於或等於count。如果在新增元素時,count超過capacity,則該列表的容量會通過自動重新分配內部陣列加倍。

如果capacity的值顯式設定,則內部陣列也需要重新分配以容納指定的容量。如果capacity被顯式設定為0,則公共語言執行庫將其設定為預設容量。預設容量為16。

在呼叫clear後,count為0,而此時capacity切是預設容量16,而不是0

將容量設定為arraylist中元素的實際數量。

如果不向列表中新增新元素,則此方法可用於最小化列表的記憶體系統開銷。

若要完全清除列表中的所有元素,請在呼叫trimtosize之前呼叫clear方法。截去空arraylist會將arraylist的容量設定為預設容量,而不是零。

arraylistalist=newarraylist();

alist.add("a");

alist.add("b");

alist.add("c");

alist.add("d");

alist.add("e");//count=5,capacity=16,

alist.trimtosize();//count=capacity=5;

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...