当前位置:   article > 正文

C++之哈希表(STL容器)_c++有没有自带的哈希算法

c++有没有自带的哈希算法

在刷算法题的时候,总是会遇到哈希表结构,而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:

  1. //定义
  2. unordered_set<int> c1;
  3. //operator=
  4. unordered_set<int> c2;
  5. c2 = c1;
  6. //判断是否为空
  7. c1.empty();
  8. //获取元素个数 size()
  9. c1.size();
  10. //获取最大存储量 max_size()
  11. c1.max_size();
  12. //返回头迭代器 begin()
  13. unordered_set<int>::iterator ite_begin = c1.begin();
  14. //返回尾迭代器 end()
  15. unordered_set<int>::iterator ite_end = c1.end();
  16. //查找函数 find() 通过给定主键查找元素
  17. unordered_set<int>::iterator find_iter = c1.find(1);
  18. //value出现的次数 count() 返回匹配给定主键的元素的个数
  19. c1.count(1);
  20. //插入函数 emplace()
  21. c1.emplace(1);
  22. //插入函数 emplace_hint() 使用迭代器
  23. c1.emplace_hint(ite_begin, 1);
  24. //插入函数 insert()
  25. c1.insert(1);
  26. //删除 erase()
  27. c1.erase(1);//1.迭代器 value 区域
  28. //清空 clear()
  29. c1.clear();
  30. //交换 swap()
  31. c1.swap(c2);

代码摘抄自link

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码探险家/article/detail/808303
推荐阅读
相关标签
  

闽ICP备14008679号