C++ map hashmap java hashmap 对比分析
首先 这个是在做leecode上的两数之和时遇到的。
首先是vector,vector是可变数组,遍历方式两种:
一 使用iterator 迭代访问,使用vector.begin() vector.end()来遍历。
二 数组的方式,i,vector.size(),i++来遍历。
vector.push_back(),将数据放到vector的结尾处。
vector.erase() ,将数据删除,可以写一个参数,代表删除的位置,从vector.begin()+XX,可以写两个参数,左闭右开区间。
vector.insert() :
insert() 函数有以下三种用法:
1、在指定位置loc前插入值为val的元素,返回指向这个元素的迭代器
2、在指定位置loc前插入num个值为val的元素
3、在指定位置loc前插入区间[start, end)的所有元素
hash:
散列 亦做哈希,就是把不同长度的输入通过散列算法到相同长度的输出。输出相同时,输入不一定相等,称为哈希碰撞。输出不同时,输入一定不相等。
map:
二叉树
map是(key,value)组成的键值对,其中key是唯一的,不能有相同的key,map.find(key),通过find函数查找key对应的value。
map1.insert(pair<int,string>(nums[i], i));
map.find(key) 返回迭代器,通过迭代器再去访问元素,->first,->second
map.begin(),map.end(),通过迭代器访问。
multimap:
红黑树
可以有相同的key值。
java hashmap:
hashmap是通过哈希表来实现的。
待更新,完善