1,底层数据结构:map采用红黑树,unordered_map采用哈希算法
2,使用场景:map适用于数据需要自动排序,unordered_map适用于数据需要随机访问
3,当存储的元素类型是自定义类型时,map需要重载 < (小于号)操作符,unordered_map需要重载
== (等号)操作符,并且计算hash_value()
4,hash_value计算方法
size_t hash_value(const person& p) { size_t seed = 0; std::hash_combine(seed, std::hash_value(p.name)); std::hash_combine(seed, std::hash_value(p.age)); return seed; }