C++之STL哈希表

set/ multiset 容器:所有元素都会在插入时自动被排序
(1)本质:set/multiset属于关联式容器,底层结构是用二叉树实现。
(2)set和multiset区别:set不允许容器中有重复的元素;multiset允许容器中有重复的元素

1)构造:set<T> st;//set<int> s1;
	拷贝构造set(sonst set& st) //set<int>s2(s1)2insert():插入
(3clear():清空所有元素
(4erase(pos):删除pos迭代器所指的元素,并返回下一个元素的迭代器
(5erase(begin,end):删除区间[begin,end)的所有元素,并返回下一个元素的迭代器
(6erase(elem):删除容器中值为elem的元素
(7size():大小
(8empty():判断是否为空
(9swap(st):交换两个容器
(10find(key):查找key是否存在,存在返回该元素的迭代器,不存在,返回set.end();11count(key):统计key的元素个数

map/ multimap容器
map中所有元素都是pair
(1)介绍:pair中第一个元素为key(键值),起到索引作用,第二个元素为value(实值);所有元素都会根据元素的键值自动排序
(2)本质:map/multimap属于关联式容器,底层结构是用二叉树实现。
(3)优点:可以根据key值快速找到value值
(4)map和multimap区别:map不允许容器中有重复key值元素;multimap允许容器中有重复key值元素

1)构造:map<T1,T2> st;
	拷贝构造set(sonst map& mp)2insert(elem):插入
(3clear():清空所有元素
(4erase(pos):删除pos迭代器所指的元素,并返回下一个元素的迭代器
(5erase(begin,end):删除区间[begin,end)的所有元素,并返回下一个元素的迭代器
(6erase(elem):删除容器中值为elem的元素
(7size():大小
(8empty():判断是否为空
(9swap(st):交换两个容器
(10find(key):查找key是否存在,存在返回该元素的迭代器,不存在,返回map.end();11count(key):统计key的元素个数

unordered_map

0)头文件:#include<unordered_map>1)初始化:unordered_map<int, int> hmap;2insert():插入;
(3begin()函数:该函数返回一个指向哈希表开始位置的迭代器
(4end()函数:作用于begin函数相同,返回一个指向哈希表结尾位置的下一个元素的迭代器
(5cbegin()cend():和begin()end()相同,区别是cbegin()cend()是面向不可变的哈希表
(6empty()函数:判断哈希表是否为空,空则返回true,非空返回false7size()函数:返回哈希表的大小
(8erase()函数:删除某个位置的元素,或者删除某个位置开始到某个位置结束这一范围内的元素,或者传入key值删除键值对
(9at()函数:根据key查找哈希表中的元素
(10clear()函数:清空哈希表中的元素
(11find()函数:以key作为参数寻找哈希表中的元素,如果哈希表中存在该key值则返回该位置上的迭代器,否则返回end()下一位置上的迭代器
(12count()函数: 统计某个key值对应的元素个数, 因为unordered_map不允许重复元素,所以返回值为01

参考:https://blog.csdn.net/Peealy/article/details/116895964

猜你喜欢

转载自blog.csdn.net/qq_44961737/article/details/132946013