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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

泛型编程与模板元编程介绍(概念、优点)

發布時間:2023/12/20 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 泛型编程与模板元编程介绍(概念、优点) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

寫在前面

今天來寫點有點難度的東東:泛型編程與模板元編程。
寫這種生僻的東東我是比較排斥的,但誰讓我看到boost庫中專門對這兩個東東分了個大類別呢。開始吧~

概念

不知道大家有沒有過這種體驗,學數學時整本書上的概念都背熟了,一碰到題目還是手足無措,不知從何下手。泛型和模板元編程這兩個概念理解起來還是比較簡單的:
泛型編程,即把參數的數據類型作為一個參數傳遞到函數,本質上就是參數化類型。簡單舉個例子,如果一個函數需要接收int或float類型的變量,需要使用重載函數編寫2個類似的函數代碼;這時候如果使用泛型編程,只需要把接收變量的類型泛型化,寫一個函數即可實現接收各種數據類型的函數了。

模板元編程,即使用模板實現元編程,是元編程最基本的運用。而所謂元編程,就是編寫一個用來編寫程序的程序代碼。舉個例子,使用遞歸函數的時候,就可以采用模板元編程的方式去替代實現,按元編程的思想和格式寫一段代碼,計算機就會在編譯期自動生成遞歸調用時需要的所有函數的代碼,從而實現計算得到結果。

優缺點

泛型編程是非常棒的技術,可以說是一個只有優點沒有缺點的技術了,推薦大家盡快使用起來。
泛型的優點:

  • 提升性能。開發歷史上抽象能力的上升往往意味著性能的下降,但是泛型并不是!因為使用泛型,可以避免裝箱和拆箱操作。
  • 類型安全。ArrayList等類中都有強制轉換的機制,如果使用泛型編程,則編譯器可以直接檢查出錯誤。
  • 代碼重用。泛型定義一次,就可以用許多不同的類型實例化。
  • 泛型的缺點:

  • 可執行文件會變大。在存儲空間有限時,必須要重視。《Effecitve C++》中專門提到:不要在模板中使用不必要的參數,因為每一個不同的參數編輯器都會為之生成一套相應的代碼。泛型產生冗余代碼是無法避免的。
  • 模板元編程的優點:

  • 運行效率提升。因為模板的運算以及展開都是在編譯期,會花相對較長的編譯時間,但能夠獲得更有效率的運行碼。
  • 代碼量變小。模板元編程允許程序員專注在架構上并委托編譯器產生任何客戶要求的實現。因此,模板元編程可達成真正的泛用代碼,促使代碼縮小并較號維護。
  • 模板元編程的缺點:

  • 可讀性差。較難令人理解,對于模板元編程經驗不豐富的程序員來說,程序變的難以維護。
  • 移植性。由于各編輯器的差異,大量依賴模板元編程的代碼可能會有移植性問題。
  • 總結

    以上是生活随笔為你收集整理的泛型编程与模板元编程介绍(概念、优点)的全部內容,希望文章能夠幫你解決所遇到的問題。

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