自己构建的哈希表,使用起来比STL的map更加方便

STL的map 虽然可以自动按键值升序对元素进行排序,但是在按顺序访问元素时,必须依赖迭代器,而map,set等不是随机存取的迭代器并不支持算术运算,这给程序设计带来诸多不便,所以多利用自己建的哈希表,会带来很多便利。

1.利用vector<pair<type,type>>来建立哈希表:

//万能头文件,包含了c++所有的头文件
#include <bits/stdc++.h>
int main(){
    vector<pair<int,int>>m1;
    //sort默认使用pair的第一个值来进行升序排序    
    sort(m1.begin(),m1.end());
    //通过使用lambda来时哈希表按pair的第二个值升序排序    
    sort(m1.begin(),m1.end(),[](pair<int,int>a,pair<int,int>b){return a.second<b.second;})
}


2.自己建立的哈希表可以使用stl中的upper_bound和lower_bound来完成map类似的操作

ForwardIter lower_bound(ForwardIter first, ForwardIter last,const _Tp& val)算法返回一个非递减序列[first, last)中的第一个大于等于值val的位置。

ForwardIter upper_bound(ForwardIter first, ForwardIter last, const _Tp& val)算法返回一个非递减序列[first, last)中的第一个大于值val的位置


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值