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)作。