哈希表基础

哈希表是一种映射,存放key和value。可以参考博客1博客2

1.力扣中的申明:

unordered_map <int,int> m; //<>中的是key和value的数据类型

2.一般语法

map.find(要找的值) //找到,返回key;没找到,返回.end()
map.end() //最后一个元素的后一位 相当于空值吧
map.count(key) // unoedered_map 不允许使用count计数,
              //如果有key,返回1;没有key,返回0
map.empty() //空,返回1;不空,返回0

auto遍历

for (auto &a : map){
	a.first  //key
	a.second  //value
}

插入元素(力扣中的代码)

1.insert

for(int i=0;i<nums.size();i++)
            a.insert(map<int,int>::value_type(nums[i],i));
            //这里的value_type不知道是啥
            //先插入再遍历时需要判断元素是否重复!!

2.for循环返回map中
我一般喜欢用for循环插入,一开始接触哈希表看到a[nums[i]]=i不要有固定思维就是这么搞,key值是可以更改的,因为哈希表是自定义的一种映射。

for(int i=0;i<nums.size();i++)
        {
            if(a.count(target-nums[i])>0)
            {
                b[0]=a[target-nums[i]];
                b[1]=i;
                break;
            }
            a[nums[i]]=i;//反过来放入map中,用来获取结果下标
        }
        //这种先判断再插入元素的方法不需要判断是否重复,因为插入的值经过了判断在插入前肯定不在表中!!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值