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

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

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

multimap:

红黑树

可以有相同的key值。

java hashmap:

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

待更新,完善

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容