c 容器類簡介

2021-06-17 20:42:27 字數 1296 閱讀 2699

.net framework 的容器

自從我發現了stl,再編寫c++程式,就離不開它了。stl提供的容器和演算法極大的方便了c++程式設計。

最近在對比研究c#中的泛型、標準容器和演算法,看看它是如何實現類似stl的功能的。先總結一下c#中的標

準容器。我使用的是 visual c# 2005。

c# 中主要有兩類容器:乙個是 system.array 類(參閱:

類似 stl 中的 vector;另一類是集合。集合還可以細分

成功能不同的幾個容器。

c# 1.0 的集合類的容器全部在 system.collections 名字空間下。(參閱:

其中實現好的容器有:arraylist

,bitarray,hashtable,queue,sortedlist,stack 。名字空間中的其它類,比如 comparer 等,是用來幫助實現容器和介面的,就不把他們算作容器了。

c# 2.0 由於增添了對泛型程式設計的支援,它又新增了乙個名字空間 system.collections.generic,存放所有支援泛型的各種集合類的容器。(參閱:

支援泛型的集合類容器有:dictionary,linkedlist,list,queue

,sorteddictionary,sortedlist,stack。

與之對比對比,stl中實現的容器有:vector,deque,list,set/multiset,map/multimap,stack,queue,bitset。

下面主要介紹一下,c# 支援范型的容器。

array 顧名思義,提供了陣列容器和操作,如查詢、排序等。類似於stl中的 vector。其宣告如下:

public abstract class array : icloneable, ilist, icollection, ienumerable

array 與stl中的 vector 和 c# 中的其它容器不同之處,它不需要特別的把變數用 array類來宣告,直接在元素型別後加中括號就可以把變數指定為是 array 容器。例如宣告乙個元素資料型別為int的陣列容器用一下語句:intmyintarray = new int[5] ; 

語句中的 myintarray 即成為乙個陣列容器。

dictionary 與 stl中的 map/multimap 相類似。ditctionary 是兩個型別引數(健和值)的集合。

list, sortedlist,與 stl中的 list 類似,提供鍊錶容器和操作。

queue與 stl中的 queue 相類似。是元素先進先出的集合。

stack與 stl中的 stack 相類似。是元素先進後出的集合。

C 容器類簡介(摘抄)

c 中的容器類包括 順序儲存結構 和 關聯儲存結構 前者包括vector,list,deque等 後者包括set,map,multiset,multimap等。若需要儲存的元素數在編譯器間就可以確定,可以使用陣列來儲存,否則,就需要用到容器類了。1 vector 連續儲存結構,每個元素是在記憶體上是...

STL標準容器類簡介

from 標準容器類 說明順序性容器 vector 從後面快速的插入與刪除,直接訪問任何元素 deque 從前面或後面快速的插入與刪除,直接訪問任何元素 list 雙鏈表,從任何地方快速插入與刪除 關聯容器 set快速查詢,不允許重複值 multiset 快速查詢,允許重複值 map一對多對映,基於...

標準C 中string類及STL容器類簡介

標準c 中string類及stl容器類簡介 include std string s1 std string s3 s2 std string s2 this is a string begin 得到指向字串開頭的iterator end 得到指向字串結尾的iterator rbegin 得到指向反...