阅读GP的代码, 核心是理解操作符重载和模板操作....进行操作符重载的时候, 主要要注意尽量不要重载&&, ||和,, 因为它们重载之后将失去短路求值和顺序求值的特性, 退化回不定序求值的函数操作....重载操作符的时候要尽量使其效果与int类型操作看齐, 不要乱改导致语义混乱加大理解难度, 且操作符重载无法改变操作符的优先级, 组合, 参数个数等....除了四个操作符重载外, 迭代器还需要实现5个性质访问符, 因为STL算法会询问迭代器的一些性质来进行偏特化的计算....容器: unordered
unordered类是在C11的时候从hash类改名过来的, 这一组容器都使用散列表实现, C++中使用了如上图的非开放式散列表来处理.