C 常用資料結構簡單總結 與C 對比

2021-08-02 16:59:42 字數 1094 閱讀 8755

首先說明, c# 中的引用即為c++中的指標。

值型別:內建資料型別,自定義的struct,不包括string。它們分配在棧上,超出作用域自動銷毀。

引用型別:自定義class或陣列的例項以及string為引用型別,它們有乙個引用(指標)指向它們。由gc負責**。

裝箱:將值型別轉換為引用型別的過程稱為裝箱

int i = 67;   // i is a value type

object o = i;

以上**會在堆上建立乙個i;

類似於c++中的&引用,減少傳值時的效能消耗,主要用在struct上。但是c#中不能建立const ref,out 和ref的區別僅在於使用out時必須進行賦值

void settoten(out

int number)

普通的陣列,不過需要使用new在堆上建立

int test = new

int[size];

裡面可以存放值型別或引用型別。

arraylist test = new arraylist();

test3.add("chen");

test3.add("j");

test3.add("d");

test3.add("is");

變長陣列,和c++中的std::vector不同的是它可以存放不同型別的資料,意思就是內部它都會轉化為object型別。

它的缺點是:

資料型別不安全,涉及到父類指標指向子類物件的問題。

新增值型別時會發生裝箱操作。

完全類似於c++ 中的std::vector 可以當做vector來使用。

list test = new list();
類似於std::forward_list

類似於std::queue和std::stack

類似於std::unordered_map, 內部用hash實現,煉表處理衝突,時間複雜度低,空間複雜度大。

常用資料結構總結(基於C )

目錄 棧 stack 簡介 宣告基本操作 示例 佇列 queue 簡介 宣告基本操作 示例 優先佇列 priority queue 簡介 宣告基本操作 調整輸出次序 二叉搜尋樹 簡介 基本概念 c 的stl中基於二叉搜尋樹有資料結構set和map 1.set 常用操作 2.map 宣告 常用操作 示...

資料結構簡單C

1.陣列 一堆相同型別資料的集合 一定是在記憶體上佔據一塊連續的空間 1.1一維資料 1陣列的定義 資料型別 陣列名 大小 資料型別 陣列名 大小 初始化 int arr 10 陣列名是陣列首位址 2陣列的賦值 陣列名 下標 取到陣列某個元素 陣列下標範圍0 n 1 arr 4 10 3陣列的初始化...

C 常用資料結構

資料結構 型別及備註 插入和刪除 查詢array 順序儲存的線性表 定長 不支援 這裡的插入與刪除指會更改表長的行為 o n linkedlist 鏈式儲存的線性表 不定長 o 1 o n list 順序儲存的線性表 不定長 動態擴容 o n 結尾則是o 1 o n stack 棧 不定長 動態擴容...