set/multiset map/multimap hash_set/hash_multiset hash_map/hash_multimap 区别与联系
2017-07-01 22:11
351 查看
set/multiset
联系
底层使用红黑树作为数据结构set/multiset 特性是所有元素都会根据元素键值自动排序,set/multiset元素的键值就是实值,实值就是键值。
不能通过迭代器来修改set/multiset的实值因为他们的实值就是键值,修改后可能不满足其排列规则
set/multiset拥有与list相同的某些性质:当客户对他的元素进行insert或erase是操作之前的所有迭代器在操作完成之后依然有效。被删除元素是例外
STL特别提供了一组set/multiset相关算法包括交集set_intersection、联集set_union、差集set_difference、对称差集set_symmetric_difference
区别
set不允许两个元素拥有相同键值所以底层插入使用红黑树的insert_unique、multiset允许两个元素拥有相同键值所以得出插入使用insert_equalmap/multimap
联系
底层使用红黑树作为数据结构map/multimap特性所有的元素根据元素的键值自动排序,map/multimap所有元素的是pair同时拥有实值(value)和键值(key),pair的第一个元素被视为键值第二个元素被视为实值
可以通过map/multimap的迭代器来修改map/multimap的实值但是不能修改map/multimap的键值,因为键值关系着map/multimap的排列规则
map/multimap拥有与list相同的某些性质:当客户对他的元素进行insert或erase是操作之前的所有迭代器在操作完成之后依然有效。被删除元素是例外
区别
map不允许两个元素拥有相同键值所以底层插入使用红黑树的insert_unique、multimap允许两个元素拥有相同键值所以得出插入使用insert_equalset/multiset hash_set/hash_multiset
联系
都是为了提高查找效率提供的接口和使用方法完全相同
区别
hash_set/hash_multiset底层使用的是hashtable,其所提供的所有接口hashtable都提供了因此几乎hash_set/hash_multiset的接口都是转调hashtable的接口红黑树有自动排序功能而hashtable没有,所以set/multiset的原素自动排序而hash_set/hash_multiset没有
map/multimap hash_map/hash_multimap
联系
都是为了提高查找效率提供的接口和使用方法完全相同
联系
hash_set/hash_multiset底层使用的是hashtable,其所提供的所有接口hashtable都提供了因此几乎hash_set/hash_multiset的接口都是转调hashtable的接口红黑树有自动排序功能而hashtable没有,所以set/multiset的原素自动排序而hash_set/hash_multiset没有
相关文章推荐
- set/multiset map/multimap hash_set/hash_multiset hash_map/hash_multimap 区别与联系
- set/multiset map/multimap hash_set/hash_multiset hash_map/hash_multimap 区别与联系
- set/multiset map/multimap hash_set/hash_multiset hash_map/hash_multimap 区别与联系
- STL关联容器MAP、SET与multimap、multiset与hashmap、hashset的区别
- 【STL源码剖析读书笔记】【第5章】关联式容器之hash_set、hash_map、hash_multiset和hash_multimap
- STL中hashtable,hashset,hashmap,set,map,multiset和multimap的区别
- stl vector、红黑树、set、multiset、map、multimap、迭代器失效、哈希表(hash_table)、hashset、hashmap、unordered_map、list
- STL之红黑树容器:set,hash_set,multiset,hash_map,multimap
- Map,Multimap,Set,MultiSet,Hash_Map,Hash_Set,Share_ptr的区分
- STL源码:hash_set、hash_map、hash_multiset、hash_multimap
- hash_set,hash_map,hash_multiset,hash_multimap
- c5be STL源码剖析-关联式容器之hash_set、hash_map、hash_multiset和hash_multimap
- 【第10章 关联容器】hashtable, hash_map, hash_set, hash_multiset, hash_multimap基于hashtable
- C++中map,hash_map,unordered_map,unordered_set区别与联系
- STL容器:set/map/multiset/multimap 与hash_set/hash_map/hash_multiset/hash_multimap
- 【STL源码剖析读书笔记】【第5章】关联式容器之hash_set、hash_map、hash_multiset和hash_multimap
- STL容器:set/map/multiset/multimap 与hash_set/hash_map/hash_multiset/hash_multimap
- map、set、multimap、multiset、hash_map、hah_set、hash_multimap、hash_multiset
- List、vector、set、map的区别与联系
- Java基本概念:集合类 List/Set/Map... 的区别和联系