您的位置:首页 > 其它

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

2018-03-30 17:50 375 查看
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的位置
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: