当前位置:   article > 正文

C++ unordered_map使用 && 实现hash表_unorederedmap.end()

unorederedmap.end()

1.创建需要指定类型

unoredred_map<type1,type2> map;

2.insert

map.insert({value1,value2})

std::make_pair<type1,type2>(value1,value2)

3.查看是否存在

map.find(key)==map.end()

4.遍历

for(auto iter=map.begin();iter!=map.end();iter++)

      cout<<iter->first<<" "<<iter->second;则先输出key再输出value

 

'''

  1. int main(){
  2. unordered_map<string,int> map;
  3. map.insert({"1",1});
  4. map.insert(std::make_pair("Scala",1));
  5. cout<<(map.find("1")==map.end())<<endl;
  6. cout<<(map.find("2")==map.end())<<endl;
  7. for(auto it=map.begin();it!=map.end();it++){
  8. cout<<it->first<<" "<<it->second<<endl;
  9. }
  10. return 0;
  11. }

'''

最简单的实现哈希表的方式就是整一个vector<Node<key,value>>

image.png

当插入一个新元素时,先将key序列化(hash),得到一个hash值,该hash值指明所在数组下标位置,接下来就是访问链表的问题了,首先遍历链表看key是否在链表中,如果在的话,将对应node的value替换,若不在,则用头插法,将新节点插入。

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

闽ICP备14008679号