關於c 裡的集合的,結構體,列舉的定義,解釋與應用

2022-01-18 14:40:15 字數 2692 閱讀 7004

那麼先寫一下 集合 。

集合和陣列很相似,陣列裡的型別是必須同一型別,固定長度。然而集合裡的可以是不同型別,不固定長度的。所以集合運用的靈活度要更高一些。

要使用集合,必須先引用命名空間:

collection 是集合   generic 是泛型;

就是在視窗最上面的命名空間裡。

直接打上就行。

然後就可以直接用集合了。

引用之後需要先定義乙個集合。就類似於乙個定義乙個變數的意思。

定義集合可以用

arraylist arr = new arraylist();   這是乙個弱型別集合;

集合中定義的變數可以使多種型別(比如乙個string乙個int···)。

listt:泛型   t是泛型的意思 ,就是說可以容納各種型別的變數

listslist = new list(); 這是乙個強型別集合

強型別集合中的變數必須是同一型別。

泛型集合比較常用,好用。

賦值以arraylist集合為例;(list集合也是一樣的)

arr.add("值/變數"); //  裡面輸入的值是object型別

object型別:所有型別的基礎型別(基類),也就是說可以放任何型別進去。

獲取個數:

arr.count;  可以輸出這個集合中有多少個數。

取值:arr[索引]      取出這個集合中對應輸入索引值的變數。和陣列一樣的。

插隊:arr.insert(索引,值/變數)可以再集合裡面的值或者變數中插進去乙個值或變數;

移除:arr.remove(值);    輸入乙個值,移除集合內的對應值。

arr.removeat(索引);輸入乙個索引值,移除集合內的索引值。

反**arr.reverse(); - 全部反轉  將集合裡的值或者變數順序翻轉。

arr.reverse(索引,個數); - 輸入乙個索引值,指定索引位置之後多少個值或者變數翻轉。

清空:arr.clear();  清空所有值

這裡經常用到 foreach   遍歷迴圈型別 

foreach(變數型別  定義變數  in  集合名)   迴圈裡面的每乙個,從頭到尾,不管數量,有多少看多少。

一般用在強集合型別,因為弱型別集合 變數型別太亂。

下面說一些其他比較特殊的集合型別

雜湊表集合:弱型別   自定義索引的集合

hashtable hs = new hashtable();

輸入是也是  hs.add(object.key,object.value)

鍵值對                        鍵                  值      

hs.(1,"hehe")

hs.("aaa","haha")

console.write(hs[1]);  括號內輸入鍵,輸出對應的值, 鍵是自己自定義的。

這裡迴圈最好使用 foreash

如果用forea迴圈   string  s  in  valuse(值) 也可以列印 鍵(key)

字典:強型別

dictionarydic = new dictionary();

與雜湊表型別差不多,強型別,鍵和值都必須是自己定義的同一種型別。

下面放乙個練習:

建立乙個集合,1-100的數字

要這個集合最後的內容是50-90

list list = new list();

for (int i = 1; i <= 100; i++)

console.writeline(list.count);

list

list1 = new list();

foreach (int aa in

list)

}list =list1;

list1 = null

; console.writeline(list.count);

console.readline();

再來說一下結構體,  結構體按我的理解就是乙個物件它對應的所有資料統計到乙個變數裡,這個變數就是結構體。

結構體:使用者自定義型別  定義的時候可以自己定義他的型別(按照自己所需,容易記住的)

定義位置:定義在main函式的外面,類的裡面(program)

定義格式:     

struct  自定義名字

定義結束後再main函式裡聲名結構體例項化

結構體型別ss = new 結構體型別();  結構體型別就是之前定義的結構體的名字

student s = new student();  這裡 student就是自己定義的結構體  , s 是定義的studen的變數。

賦值: 

s.??? (資料型別的名字)  

s.???

在賦完值之後要把值輸入到結構體裡

用  ss.add(s);  看顏色相關變數

取值:s.???   也是一樣的

列舉 (統一記錄格式用)

列舉定義也要寫在 main函式的外面

enum  week(星期)

定義完輸出時

week.  (打上點之後就會出現選擇框,選擇之前定義的結構體中輸入的所有值)

這就是列舉

c語言的結構體 共用體 列舉

struct s var struct s var1 結構體本身的開頭和結尾位址都是4位元組的整數倍 var2 結構體本身的開頭和結尾位址都是4位元組的整數倍 var3 結構體本身的開頭和結尾位址都是4位元組的整數倍 由此可見,元素的安放順序非常講究 offsetof type,member typ...

C 的中的結構體和列舉

1 結構體 struct 的使用 使用struct定義乙個結構 struct book book 結構體變數的定義 struct book tmpbook 要訪問結構體變數中的資料 tmpbook.isbn tmpbook.publisher tmpbook.bookname 2 列舉 enum 的...

C 中的結構體 聯合 列舉

1 c 和c語言的區別 1 c 中的空結構體求sizeof大小為1,c中的空結構體大小為0 include using namespace std c 中的空結構體的大小為1 struct a struct b int main 2 c 中結構體型別名 struct 可以省略,c中結構體型別名str...