C 常用集合

2022-03-10 17:52:51 字數 2439 閱讀 4138

什麼是集合:集合就是一種存放多個資料的容器型別,比如最簡單的集合:陣列array(完整的型別是system.array)。

為什麼需要集合:集合比陣列更加強大,集合實現了更加豐富的功能,可以提高開發效率。

本篇部落格介紹以下幾種常用集合:

優點:初始化時可以不指定長度,可以使用count屬性獲取長度,隨時新增add、刪除remove,removeat,訪問通過索引[index]。

缺點:比陣列耗費更多記憶體,讀取速度比陣列慢,arraylist是非泛型集合,裡面放的是object類,需要執行裝箱拆箱操作,有效能損耗。

菜鳥教程:

為避免動態陣列arraylist裝箱和拆箱的問題,通常使用list泛型來指定特定的型別,以減少效能損耗。

using system;

using system.collections.generic;

using system.linq;

namespace test

stulist.clear();//移除所有元素}}

public class student

public void printname()}}

輸出結果:

鍵值對型別安全,沒有裝箱和拆箱的效能損耗,查詢等操作速度快,單執行緒中推薦使用 dictionary,有泛型又是,且讀取速度快,容量利用更充分。對鍵值對的操作具體可看我的另一篇部落格:

棧是一種先進後出,後進先出的物件集合,好比是只有乙個開口的羽毛球筒,最先放進去的球,是最後乙個拿出來的。

棧的常用方法:

入棧push()

出棧pop()

獲取棧頂物件peek()

//再次新增物件

st.push('e');

st.push('f');

//輸出頂棧物件

console.writeline("the next poppable value in stack: ",st.peek());

console.write("current stack: ");

foreach (char c in st)

console.writeline();

console.writeline("removing values ");

//出棧

st.pop();

st.pop();

st.pop();

console.write("current stack: ");

foreach (char c in st)}}

}輸出結果:

佇列是一種先進先出的物件集合,類似兩端開口的羽毛球筒,先放進去的,重另一端先拿出來。

佇列的常用方法

出隊dequeue()

入隊enqueue()

**:

using system;

using system.collections;

namespace test

; console.writeline();

//再次新增物件

q.enqueue('e');

q.enqueue('f');

console.write("current queue: ");

foreach (char c in q)

;console.writeline();

console.writeline("removing some values ");

//出隊

char ch = (char)q.dequeue();

console.writeline("the removed value: ", ch);

ch = (char)q.dequeue();

console.writeline("the removed value: ", ch);

console.readkey();}}

}

輸出結果:

C 常用泛型集合

之前已經整理了泛型和集合的資料,今天來刷一下兩個c 提供的常用泛型集合 list 和dictionary 使用list 泛型集合,需要引入system.collections.generic 命名空間 list 是arraylist的泛型等效類,即list 物件的方法跟arraylist一樣,只不過...

C 常用集合總結 2

3 stack 表示物件的先進後出的集合。如下 stack stack new stack stack.push 1 stack.push aaa stack.push 1.11 foreach object i in stack foreach只是檢視元素並沒有真正移除元素 console.wri...

C 常用集合演算法

set intersection 求兩個容器的交集 set union 求兩個容器的並集 set difference 求兩個容器的差集 1 set intersection 求交集,求交集的兩個集合必須有序,目標容器開闢空間需要從兩個容器中去最小值,set intersection返回值即是交集中...