日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

《STL源码剖析》学习--STL体现的思想

發布時間:2025/3/21 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《STL源码剖析》学习--STL体现的思想 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

STL總是盡量做到節省內存且效率最高,在看本書中也越來越有深的體會。這里搜集一個stl中提高效率的方法。

1.對象的復制、析構等

如果將一個區間中的所有的對象析構掉,這是如果范圍很大,每個析構都是無關痛癢的,對效率有很大傷害。

負責對象析構的destroy()有兩個版本,第一個版本直接調用對象的析構函數;第二個版本,如果對象的析構是無關痛癢的(其__type_traits<T>true),則什么也不做,否則,調用第一個版本。

同理復制操作,如果復制操作是trivial assignmentoperator,則復制直接以最快的內存對拷貝方式(memmove())完成。

2.算法

stl的算法優化非常好,針對不同的迭代器,如forwardbidirectionalrandom iterator等,因為元素的訪問規則不一樣,設計了不同的算法。

stl算法中經常使用雙層架構,一般稱呼上層函數為dispatch function(分派函數、派送函數),令函數傳遞調用過程中產生迭代器類型(iterator category)的臨時對象,再利用編譯器的參數推導機制(argumentdeduction),自動調用某個函數。

上層函數調用時不分類型對待,其中來根據參數或者模板的類別,調用下層這個函數就會根據傳入的參數的類型分別重載不同的版本,來達到效率最高。一般嵌套調用的這個函數的某個參數為某個模板類型的value_type

總結

以上是生活随笔為你收集整理的《STL源码剖析》学习--STL体现的思想的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。