最近工作碰到的。
如果你要儲存大量資料,而且還要給他排好序。那麼最好使用deque, 因為vector太浪費記憶體,list會造成記憶體碎片,而且定位也慢,map雖然定位很快,也很方便,但是消耗的記憶體比較多,也比較容易出現記憶體碎片。
deque是以記憶體塊分配,首先不會造成太大的記憶體浪費,在新增資料時,也不要沒加個資料就建立乙個空間,造成記憶體碎片,還預防記憶體抖動。其次,定位快, 他的定位是以 塊索引=size%每塊大小, 塊內索引=size/每塊大小,有此可見跟vector相差不會太多。最後,在排好序後可以用二分法查詢,可以提公升檢索速度,估計接近map。
但是,deque的 insert 方法,也和vector一樣需要搬動資料,所以比較慢,特別是大資料量時。因此,千萬不要一邊插資料,一邊進行排好序。好的做法是 先把資料 push_back 進去,在進行 sort 排序。這樣做效率可以提高很多。
泛型的一些理解
泛型是為了解決型別不確定的問題,業務邏輯相同只有物件型別不同。是屬於編譯期的,編譯器編譯完之後,帶有泛型的程式,生成的.class位元組碼檔案中將不存在泛型。以此使程式在執行時效率不受影響,這個過程被稱為泛型 擦除 泛型泛型又可以分為集合泛型和自定義泛型。一 集合泛型 list list1 new ...
C 一些集合或者泛型的使用
1.arraylist 直接獲取陣列中的元素並且輸出 int arri array myarray arri foreach int item in myarray arraylist mylist new arraylist console.writeline mylist.count mylis...
泛型的一些問題
泛型的概念 把型別明確工作推遲到建立物件或者呼叫方法時才明確的一種機制 泛型的語法 引用型別,引用型別 使用泛型好處是避免了向下轉型,例如集合中的元素 如果不使用泛型,取出元素後,需要向下轉型成為本類才可以獲得 arraylist arraylist newarraylist arraylist.a...