哈希表

151 阅读1分钟
  • 首先unordered_map是一个将key和value关联起来的容器,它可以高效的根据单个key值查找对应的value.
  • key值应该是唯一的,key和value的数据类型可以不相同。
  • unordered_map存储元素时没有进行排序,只是根据key的哈希值,将元素存在指定位置,所以根据key查找单个value时非常高效,平均可以在常数时间内完成。
  • unordered_map查询单个key的时候效率比map高,但是要查询某一范围内的key值时比map效率低。
  • 可以使用[]操作符来访问key值对应的value值。

用法示例

#include #include 
<unordered_map> using namespace std; 
int main() { string key="123"; 
int value=4;           unordered_map<string, int> unomap;//创建一个key为string类型,value为int类型
unordered_map unomap.emplace(key, value);//使用变量方式,插入一个元素
unomap.emplace("456", 7);//也可以直接写上key和value的值
cout<<unomap["123"];//通过key值来访问value 

for(auto x:unomap)//遍历整个map,输出key及其对应的value值
cout<<x.first<<" "<<x.second<<endl; 
for(auto x:unomap)//遍历整个map,并根据其key值查看对应的value值 cout<<unomap[x.first]<<endl; }