STL與泛型編程 Week5 (Boolan) by Im4lish

1-一個(gè)萬(wàn)用的hash_function
基本思想:將所需要計(jì)算哈希值的對(duì)象中所有基礎(chǔ)類型的哈希值相加所得
自己編寫(xiě)的hash_function的三種實(shí)現(xiàn)方式
1、仿函數(shù)

class MyTypeHash{
    size_t operator() (const MyType& m) const {
          return ……
     }
};

2、獨(dú)立函數(shù)

size_t my_type_hash_function (const MyType& m){
          return ……
     }

3、標(biāo)準(zhǔn)庫(kù)hash的偏特化形式

namespace std{
    template<>
    struct hash<MyTypeHash>{
        size_t operator() (const MyType& m) const {
          return ……
         }
    }
}

2-Tuple用例
tuple的實(shí)現(xiàn)方法使用了variadic template,與一般在函數(shù)中使用variadic template的方法類似。tuple通過(guò)繼承,使得子類在構(gòu)造tuple對(duì)象時(shí),不斷的通過(guò)繼承去調(diào)用父類的構(gòu)造函數(shù),直到最后一層剩下0個(gè)參數(shù)去調(diào)用空的偏特化版本,與遞歸相類似。
3-Type Traits
POD(plain old data):沒(méi)有實(shí)現(xiàn)拷貝構(gòu)造等函數(shù)的對(duì)象。
4-Type traits實(shí)現(xiàn)
5-cout

6-moveable元素對(duì)于deque速度效能的影響

7-測(cè)試函數(shù)
移動(dòng)拷貝與默認(rèn)拷貝的區(qū)別:對(duì)于指針變量,移動(dòng)拷貝在把原有指針拷貝到目的指針的同時(shí),將原有指針置為NULL,而默認(rèn)拷貝并沒(méi)有這個(gè)動(dòng)作。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容