STL与泛型编程 Week5 (Boolan) by Im4lish

1-一个万用的hash_function
基本思想:将所需要计算哈希值的对象中所有基础类型的哈希值相加所得
自己编写的hash_function的三种实现方式
1、仿函数

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

2、独立函数

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

3、标准库hash的偏特化形式

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

2-Tuple用例
tuple的实现方法使用了variadic template,与一般在函数中使用variadic template的方法类似。tuple通过继承,使得子类在构造tuple对象时,不断的通过继承去调用父类的构造函数,直到最后一层剩下0个参数去调用空的偏特化版本,与递归相类似。
3-Type Traits
POD(plain old data):没有实现拷贝构造等函数的对象。
4-Type traits实现
5-cout

6-moveable元素对于deque速度效能的影响

7-测试函数
移动拷贝与默认拷贝的区别:对于指针变量,移动拷贝在把原有指针拷贝到目的指针的同时,将原有指针置为NULL,而默认拷贝并没有这个动作。

你可能感兴趣的:(STL与泛型编程 Week5 (Boolan) by Im4lish)