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<MyTypeHash>{
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,而默认拷贝并没有这个动作。
网友评论