首页 > 其他分享 >常用哈希表

常用哈希表

时间:2023-03-11 09:35:13浏览次数:37  
标签:std map 常用 set key 哈希 unordered

 什么时候使用哈希法?

当我们需要查询一个元素是否出现过,或者一个元素是否在集合里的时候,就要第一时间想到哈希法。

 

哈希表大概可分为三大类:数组,set,map

1.set

如果哈希值比较少、特别分散、跨度非常大,使用数组就造成空间的极大浪费。

此时就要使用另一种结构体了,set ,关于set,C++ 给提供了如下三种可用的数据结构:

  • std::set
  • std::multiset
  • std::unordered_set

std::set和std::multiset底层实现都是红黑树,std::unordered_set的底层实现是哈希表, 使用unordered_set 读写效率是最高的,并不需要对数据进行排序,而且还不要让数据重复,所以选择unordered_set。

 

头文件#include<unordered_set>

unordered_set不能用于存放键值对,功能类似数组,判断某元素是否存在,且可返回其出现的频次。

赋值查找方法同map

2.map

map 是一个key value 的数据结构,map中,对key是有限制,对value没有限制的,因为key的存储方式使用红黑树实现的

头文件#include<unordered_map>

unordered_map用于存放键值对,其中元素以pair形式存放。

 

 

 

 

 

 clear():清空哈希表

erase(key):删除某元素

 

标签:std,map,常用,set,key,哈希,unordered
From: https://www.cnblogs.com/ysl99999/p/17205277.html

相关文章

  • .net 常用工具类收藏
    Masuit.Tools包含一些常用的操作类,大都是静态类,加密解密,反射操作,权重随机筛选算法,分布式短id,表达式树,linq扩展,文件压缩,多线程下载和FTP客户端,硬件信息,字符串扩展方法,日期......
  • Git 常用命令备忘录
    转载至:Git命令使用Git有很多不同的方法。Git支持许多命令行工具和图形化的用户接口。Git的命令行是唯一可以运行所有Git命令的地方。下面这组命令将帮助你了解如何......
  • Docker常用命令
    docker从入门到实践参考文档https://docker-practice.github.io/zh-cn/dockr练习网站https://labs.play-with-docker.com/查看docker版本dockerversion或docker-v......
  • PyCham常用快捷键
    1、代码格式化(美化代码格式):Ctrl+Alt+L  2、快速异常捕获:Ctrl+Alt+T  3、向右缩进制表位,向左缩进制表位:shift+tab,向左缩进,前面两个tab空,修改为一个tab......
  • Docker常用应用之无数据库图床
    1.简介EasyImage,简单强大无数据库的图床,适用于个人使用等单一场景,而且在写这篇文章的时候,作者还在更新。EasyImage2.02.安装EasyImage2.0docker安装mkdir-p/data/do......
  • 「密码学」哈希为什么要将盐加在明文后面?
    众所周知,在做消息认证或者签名时,仅使用hash函数安全性是不高的,容易遭受字典和暴力破解(https://www.cmd5.com/)。所以通常会使用带密钥或加盐的哈希算法作为消息认证或者口......
  • 常用函数(四)
    const修饰普通变量为只读变量    修饰*例如:const*p,在使用中,*p是只读,不能通过*p修改p所指向的空间内容。p可读可写,p可以指向其它空间   ......
  • Linux运行jar包项目常用命令整理
    查询当前在运行的java项目:查询指定java项目ps-ef|grep项目名称(进程名称)或ps-aux|grep项目名称(进程名称),也就是指定项目名。查看所有java项目,如下:杀死java......
  • 数组和哈希表的选择
    使用数组来做哈希的题目,是因为题目都限制了数值的大小。题目没有限制数值的大小,就无法使用数组来做哈希表了。而且如果哈希值比较少、特别分散、跨度非常大,使用数组就造......
  • linux 常用命令
    linux常用命令有:pwd命令使用pwd命令找出您所在的当前工作目录(文件夹)的路径。该命令将返回一个绝对(完整)路径,该路径基本上是所有以/开头的目录的路径。绝对路径的......