Map
map以键值对(key-value)的形式存在的一种关联容器,可以做到自动排序。删除或增加某个节点,只对操作的那个节点有影响,对其他无影响,对于迭代器来说只能修改实质,不能修改key。
1.支持快速查找,查找的复杂度基本是Log(N)\
2.快速插入,快速删除,快速修改
Map有如此性质主要是因为其底层是基于红黑树
详情参考:http://blog.youkuaiyun.com/u012062760/article/details/43237013
Hash_Map
Hash_map是基于hashTable,不会自动排序,大部分操作的最差时间复杂度是O(n),平均复杂度为常数。
Hash_map是用空间去换时间。
基本原理:使用一个下标范围比较大的数组存储元素,通过一个函数(哈希函数,散列函数)使每个元素的关键字与一个函数值(下标,hash)对应。
缺点:因为不能够保证每个元素的关键字和函数值一一对应,因此可能出现不同的元素计算出相同的函数值,这样就产生了“冲突”。所以“直接定址”和“解决冲突”是哈希表两大特点。
冲突处理:https://www.cnblogs.com/guweiwei/p/6945700.html
哈希表:http://blog.jobbole.com/109058/