STL hash_set、hash_map、hash_multiset和hash_multimap总结

ash_set、hash_map、hash_multiset、hash_multimap四个关联容器都是以hashtable为底层实现方法(技巧)。

关于hashtable的底层实现,可参见STL hashtable的底层实现总结

一、hash_set

1、用hashtable实现,因hashtable中实现了几乎所有hash_set的操作,所以hash_set直接调用hashtable的方法即可。

2、与set不同的是,set用的是红黑树实现,且会自动排序,而hash_set不能。

3、hash_set的使用方式,和set完全相同。

二、hash_map

1、hashtable中提供了hash_map的几乎所有的操作,所以直接调用hashtable的操作即可。

2、与map的不同是map用红黑树实现可以自动排序,而hash_map不可。

3、hash_map的使用方式,和map完全相同。

三、hash_multiset

1、与hash_set不同的是,hash_multiset调用的是hashtable的insert_equal(),而hash_set调用的是insert_unique(),这样就决定了hash_multiset可以有重复元素。

2、hash_multiset的使用方式,与hash_set完全相同。

四、hash_multimap

1、与hash_map不同的是,hash_multimap调用的是hashtable的insert_equal(),而hash_map调用的是insert_unique(),这样就决定了hash_multimap可以有重复元素。

2、hash_multimap的使用方式,与hash_map完全相同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值