这里对unordered_map进行一些简单的介绍,包括其基本用法。更加详细的介绍请学习cplusplus网站相关资料。
一、定义
template < class Key,
class T,
class Hash = hash
<Key
>,
class Pred = equal_to
<Key
>,
class Alloc = allocator
< pair
<const Key
,T
> >
> class unordered_map;
定义看不懂,没事留着往后有能力看懂了在慢慢看,我们先来看下它是干什么么用的。 cplusplus中对其介绍如下(想看的看下,不想看的跳过): 这部分介绍主要说明了一下几点:
首先unordered_map是一个将key和value关联起来的容器,它可以高效的根据单个key值查找对应的value.key值应该是唯一的,key和value的数据类型可以不相同。unordered_map存储元素时没有进行排序,只是根据key的哈希值,将元素存在指定位置,所以根据key查找单个value时非常高效,平均可以在常数时间内完成。unordered_map查询单个key的时候效率比map高,但是要查询某一范围内的key值时比map效率低。可以使用[]操作符来访问key值对应的value值。
然后其它更加详细的介绍请移步cplusplus
二、用法示例
#include <iostream>
#include <unordered_map>
using namespace std
;
int main()
{
string key
="123";
int value
=4;
unordered_map
<string
, int> unomap
;
unomap
.emplace(key
, value
);
unomap
.emplace("456", 7);
cout
<<unomap
["123"];
cout
<<endl
;
for(auto x
:unomap
)
cout
<<x
.first
<<" "<<x
.second
<<endl
;
for(auto x
:unomap
)
cout
<<unomap
[x
.first
]<<endl
;
}
更多方法请参考cplusplus.然后上面代码中用到的for循环方法,可以在这里看到。
cplusplus关于unordered_map的介绍 ↩︎