赞
踩
在刷算法题的时候,总是会遇到哈希表结构,而C++的STL是自带有哈希结构的。
注:STL为C++标准库,一般有三个常用的:HP STL;P.j.Plauger STL;SGL STL。
其中HP STL是第一个实现的版本,也是大多数STL的蓝本。这三个里面,HP STL和SGL STL是开源的。SGL STL被Linux的C++编译器GCC采用,可读性较强。
哈希表定义:哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。
在C++的STL中由unordered_set实现。
unordered_set:
- //定义
- unordered_set<int> c1;
-
- //operator=
- unordered_set<int> c2;
- c2 = c1;
-
- //判断是否为空
- c1.empty();
-
- //获取元素个数 size()
- c1.size();
-
- //获取最大存储量 max_size()
- c1.max_size();
-
- //返回头迭代器 begin()
- unordered_set<int>::iterator ite_begin = c1.begin();
-
- //返回尾迭代器 end()
- unordered_set<int>::iterator ite_end = c1.end();
-
- //查找函数 find() 通过给定主键查找元素
- unordered_set<int>::iterator find_iter = c1.find(1);
-
- //value出现的次数 count() 返回匹配给定主键的元素的个数
- c1.count(1);
-
- //插入函数 emplace()
- c1.emplace(1);
-
- //插入函数 emplace_hint() 使用迭代器
- c1.emplace_hint(ite_begin, 1);
-
- //插入函数 insert()
- c1.insert(1);
-
- //删除 erase()
- c1.erase(1);//1.迭代器 value 区域
-
- //清空 clear()
- c1.clear();
-
- //交换 swap()
- c1.swap(c2);
代码摘抄自link。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。