2018-07-12

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(nums[i], i));

map.find(key) 返回迭代器,通过迭代器再去访问元素,->first,->second

map.begin(),map.end(),通过迭代器访问。

multimap:

红黑树

可以有相同的key值。

java hashmap:

hashmap是通过哈希表来实现的。

待更新,完善

你可能感兴趣的:(2018-07-12)