STL之unordered_map使用方法
STL之unordered_map使用方法
全面的为您讲解STL之unordered_map使用方法方面的内容,具体介绍如下:
1.什么是STL呢
C++的STL(Standard Template Library)是C++标准库的一部分,它提供了一组通用的模板类和函数,实现了很多常见的数据结构和算法,使得C++程序员能够更方便地进行开发。
STL的设计目标是提供高性能、通用性和可移植性。
STL主要包括以下几个组件:
- 容器(Containers):提供了各种数据结构,如向量(vector)、链表(list)、队列(queue)、栈(stack)、集合(set)、映射(map)等。这些容器提供了不同的接口和特性,以满足不同的需求。
- 迭代器(Iterators):提供了一种统一的访问容器元素的方式,使得算法可以独立于容器而工作。迭代器允许你按顺序访问容器中的元素。
- 算法(Algorithms):提供了一系列通用的算法,如排序、查找、变换等。这些算法可以用于不同类型的容器,并且可以通过迭代器进行访问。
- 函数对象(Function Objects):也称为仿函数(Functors),是一种可以像函数一样调用的对象。它们通常用于算法中,允许自定义操作。
- 适配器(Adapters):提供了一些用于修改或扩展容器和迭代器接口的类,如栈适配器(stack)、队列适配器(queue)等。
2.unordered_map
【功能】:无序映射,与map类似,但不进行排序,提供更快的查找操作。是无序的哈希表,存储无序的键值对。
2.1 头文件:
#include <unordered_map>
2.2 怎么创建:
unordered<String,int> myMap;
2.3 初始化:
// 插入键-值对
myMap["Alice"] = 25;//类似数组方式的赋值,给键映射对应值
myMap["Bob"] = 30;
myMap["Charlie"] = 35;
2.4 根据key获取对应value值:
cout << "Age of Alice: " << myMap["Alice"] << endl;
2.5 遍历,判断key是否存在:
// 检查键是否存在
if (myMap.find("David") != myMap.end()) {
cout << "Age of David: " << myMap["David"] << endl;
}
注:myMap.find()返回的是一个迭代器,可以根据迭代器it遍历无序哈希表,一般根据it是否等于xx.end()判断有没有找到对应的键,如果等于xx.end()就是没有找到,否则就是找到了。
2.6 怎么根据迭代器it获取key和value:
it->first表示哈希表的键,而it->second表示哈希表键对应的值。这种表示方式允许您通过迭代器it来访问键值对的键和值。
for (const auto& pair : myMap) {
cout << pair.first << ": " << pair.second << endl;
}
相关阅读
-
网站建设哪个平台最好 独立建站平台介绍
小编为大家说一说网站建设哪个平台最好和独立建站平台介绍的教程内容,接下来分享详细内容。 疫情期间电商业务量增长屡破记录,不少中小企业也首次建立官方网站及商店,借此吸引网上
-
增量SPF的优势有哪些? 增量SPF的优势
下面为网友们详细介绍增量SPF的优势有哪些的相关知识,接下来一起来看看吧。 降低CPU负载: 传统的SPF会在拓扑变化时重新计算整个SPT,而增量SPF只计算受影响的部分,降低了路由器的CPU负载
-
Redis的数据过期策略是什么
本文为您带来的是Redis的数据过期策略是什么IT技巧方面的经验,接下来IT袋网小编为大家介绍。 Redis使用数据过期策略来自动删除已经过期的数据,以释放内存空间并确保数据的新鲜性。 Red
-
什么是网络性能指标 网络性能指标有哪些?
今天分享:什么是网络性能指标的话题,很不错的方法小知识,建议收藏哦! 1、网络性能及指标概述 网络性能管理是指评价系统资源的运行状况及通信效率等系统性能。 网络性能管理的目的


