MyC 之順序容器

2021-06-01 23:27:39 字數 1035 閱讀 3106

myc++之順序容器

上篇文章講述的是泛型程式設計,在泛型程式設計裡面最能耳熟就是容器了,容器是什麼?就是類模板,模板上次已經說過了,這裡就不多說。容器裡面又分好幾類,《c++primer》裡面介紹的是兩類:順序容器和關聯性容器。當然容器肯定不止這兩類,還有什麼非標準順序容器之類的什麼…這個暫且不說。

這次先介紹的順序容器,標準的順序容器又包含:vector、list、deque、string,不管怎麼,首先得把定義擺出來,「一切不從定義出發的結論都是扯淡(至少我認為是這樣的,貌似這句話和另一句話有些類似,不知道你能否猜到)」。順序容器就是將單一型別元素聚集起來成為容器,然後根據位置來儲存和訪問這些元素的一類容器。然後再來分析分析,容器到底是什麼?是什麼?說到底不還是資料儲存結構麼,占用的還不就是記憶體麼,所以呀,你也可以定義個什麼資料結構,在裡面加入一些高效的介面函式,注意,重要的是高效!!!最重要的………….還是高效!!!然後你可以給這個命個名稱,比如說「杯具」呀,是吧,呵呵、、、所以啊,資料結構是狠狠狠重要滴、、、

順序容器按結構的不同又分有序列型和節點型,直白點就是連續記憶體型和非連續記憶體型,序列型有vector、deque、string,節點型的就是list。對於連續記憶體型別而言,記憶體是動態分配的,如果乙個新元素被插入或乙個存在的元素被擦除,在同一記憶體塊中其它元素必須搬移為新元素提供空間或**已擦除元素所占用的空間;對於非記憶體型而言,插入和刪除只影響指向節點的指標,不影響節點本身的內容,所以執行插入或擦除操作時元素值不需要移動記憶體空間。兩類容器各有千秋,所以選擇使用哪個之前當然要考慮各個方面的因素了,說回來考慮的最終的目的就是讓我們的程式更高效更便利,僅此而已。

然後是他們分別的一些特點:

deque/vector:

優點:以連續記憶體的方式存放,支援快速和隨機訪問,所以iter+n,>、=、<=。

缺點:中間插入元素開銷大

list:

優點:以非連續記憶體的方式存放,支援快速插入和刪除

缺點:隨機訪問開銷大

deque:從兩端插入和刪除資料快速

所以得根據上述特點並結合例項綜合選擇合適的容器已達到最大的高效!

一心向學_____

My C 之關聯容器

前兩天剛開的學,哎 我原來已經大三了,花了兩 三天的時間來平復一下那顆躁動的心啊,畢竟空想者真滴很空虛滴。咱 進入主題。上次談了談順序容器,這次說說關聯容器,it界的大師們對事物的命名總是那麼滴簡潔 通俗,不會多一字,亦不少一字。順序容器是按位置來訪問和儲存元素的,很好理解,那關聯二字呢?粗糙地理解...

stl容器之順序容器

stl容器分為順序容器和關聯容器 其中順序容器最常用的由vector,list,queue 1.vector vector 向量容器,可以看作變長陣列,長度可根據需要自行變化。使用的標頭檔案 include 定義方式 vector陣列名 vectorar 訪問容器內資料的方式和普通陣列相同,可以用a...

C STL之順序容器

容器,置物之所也!研究資料的特定排列方式,以利於搜尋或排序或其它特殊目的,這一專門學科我們稱為資料結構 data structures 容器即是運用最廣的一些資料結構實現出來的!常見的資料結構有陣列 array 鍊錶 list 堆疊 stack 佇列 queue 樹 tree 雜湊表 hash ta...