- 面向对象的三个特性
- 封装:隐藏对象的属性及实现细节,仅仅提供接口和方法
- 继承:一个对象直接使用另一个对象的成员及方法,扩展已经存在的代码
- 多态:为了实现接口的重用
- unordered_map 以及 map
- unordered_map
- 底层实现是哈希表
- 无序
- 插入、删除、判断key平均时间复杂度均为O(1)
- 哈希函数可能存在哈希冲突,不同的key映射到同一个位置,开放寻址法或者链地址法
- map
- 底层实现是红黑树
- 有序,会按照key的值从大到小进行排列
- 插入删除时间复杂度均为O(logn)
- 查询时间比较稳定
- 两个容器里面的元素类型均为pair类型
- 在需要有序或者对单次查询有时间要求的应用场景下,应该使用map
- insert已经存在的key,会自动忽略这个key,替换的话需要先判断是否存在,再使用map[key]进行修改
- unordered_map
