【c++】STL 容器 unordered_map用法详解
2019-05-26 15:50
405 查看
版权声明:本文为博主原创文章,转载请标明出处 https://blog.csdn.net/C2681595858/article/details/90576859
- 这里对unordered_map进行一些简单的介绍,包括其基本用法。更加详细的介绍请学习cplusplus网站相关资料。1
一、定义
template < class Key, // unordered_map::key_type class T, // unordered_map::mapped_type class Hash = hash<Key>, // unordered_map::hasher class Pred = equal_to<Key>, // unordered_map::key_equal class Alloc = allocator< pair<const Key,T> > // unordered_map::allocator_type > class unordered_map;
-
定义看不懂,没事留着往后有能力看懂了在慢慢看,我们先来看下它是干什么么用的。
首先unordered_map是一个将key和value关联起来的容器,它可以高效的根据单个key值查找对应的value.
cplusplus中对其介绍如下(想看的看下,不想看的跳过):
这部分介绍主要说明了一下几点: - 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;//创建一个key为string类型,value为int类型的unordered_map unomap.emplace(key, value);//使用变量方式,插入一个元素 unomap.emplace("456", 7);//也可以直接写上key和value的值 cout<<unomap["123"];//通过key值来访问value cout<<endl; 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; }
- 更多方法请参考cplusplus.
- 然后上面代码中用到的for循环方法,可以在这里看到。
相关文章推荐
- STL容器(C11)--unordered_map用法
- C++ STL之map容器用法详解 (包含pair,make_pair等等)
- C++模版STL中 map 和 string, vector 的用法详解!
- C++中的STL中map用法详解
- C++中的STL中map用法详解
- C++ unordered_map自定义KEY用法以及insert无法覆盖解决办法
- C++中的STL中map用法详解
- C++的STL中的map用法详解
- C++模版STL中 map 和 string, vector 的用法详解!
- C++中的STL中map用法详解
- STL — map容器用法的详解
- C++中的STL中map用法详解
- C++学习 STL之六:map/multimap用法详解
- C++中的STL中map用法详解
- C++中的STL中map用法详解(1)
- C++中的STL中map用法详解
- c++ stl中map容器的基本用法
- C++中的STL中map用法详解
- C++中的STL中map用法详解
- STL容器分析--unordered_map/unordered_set(C++11)