C 學習筆記11 STL list

2021-08-07 22:39:33 字數 390 閱讀 7313

list就是雙向鍊錶,元素也是在堆中存放,每個元素都是放在一塊記憶體中,它的記憶體空間可以是不連續的,通過指標來進行資料的訪問。

這個特點使得它的隨即訪問變的非常沒有效率,因此它沒有提供操作符的過載。但由於鍊錶的特點,它可以以很好的效率支援任意地方的刪除和插入

list沒有空間預留習慣,所以每分配乙個元素都會從記憶體中分配,每刪除乙個元素都會釋放它占用的記憶體。list在**新增刪除元素效能都很高,不需要移動記憶體,當然也不需要對每個元素都進行構造與析構了,所以常用來做隨機操作容器。但是訪問list裡面的元素時就開始和最後訪問最快,訪問其它元素都是o(n) ,所以如果需要經常隨機訪問的話,還是使用其它的好。

就是乙個鍊錶。

C 學習筆記11

11.集合1.泛型集合所在命名空間 system.collection.qeneric 2.非泛型集合所在命名空間 system.collection 3.常用介面 1 enumerator 只要實現了該介面的類就支援foreach遍歷 2 icollection 實現了該介面,就能夠訪問count...

C 學習筆記11

本質上來說,模板就是將型別引數化以解決強型別語言的嚴格性和靈活性的衝突。當然這一問題的解決還有兩種方法,分別為帶引數巨集定義和過載函式。其中普通函式與函式模板可以過載,而且函式模板之間也可以過載。模板一般不進行分檔案編寫,可就在標頭檔案中實現,標頭檔案字尾為.hpp。模板可分為函式模板和類模板,通過...

c 11學習筆記

c 98的 std auto ptr已經被徹底遺棄了,取而代之的是unique ptr shared ptr與weak ptr。大部分時候我們自己手動申請記憶體方式記憶體都是沒有問題的,問題是如果程式很大了之後,乙個複雜的物件,多次拷貝的代價非常高,很多地方都會使用到,只存在乙份拷貝顯然是最好的,這...