map详解

map是什么?

Map是一个以键值对存储的接口

Map集合存储元素是成对出现的,Map集合的键是唯一的,每个键最多只能映射到一个值。 不同键映射的值是可重复的。

注意:Map集合的数据结构是针对键有效,跟值无关。而Collection集合的数据结构是针对元素有效。

Map集合的功能概述
1: 添加功能
V put(K key,V value):添加元素。
如果键是第一次存储,就直接存储元素,返回null;
如果键不是第一次存储,就用值把以前的值替换掉,返回以前的值。
2: 删除功能
void clear():移除所有的键值对元素。
V remove(Object key):根据键删除键值对元素,并把值返回。
3: 判断功能
boolean containsKey(Object key):判断集合是否包含指定的键
boolean containsValue(Object value):判断集合是否包含指定的值
boolean isEmpty():判断集合是否为空
4: 获取功能
Set keySet():获取集合中所有键的集合
V get(Object key):根据键获取值
Set<Map.Entry<K,V>> entrySet():获取所有键值对对象的集合
Collection values():获取集合中所有值的集合
5: 长度功能
int size():返回集合中的键值对的总数
 

 

STL中的map是一个关联容器,它存储元素组成的关键字-值对(key-value pairs)。每个元素的键都是唯一的,并用于快速检索存储的值。map在C++标准库中被广泛使用,它基于红黑树实现,因此能够提供良好的效率保证,其插入、删除和查找操作通常具有对数时间复杂度。 map的主要特性如下: 1. 自动排序:map中的元素会根据键自动排序,通常是升序排列。 2. 唯一键:每个键在map中只能出现一次,不可以重复。 3. 快速查找:基于其红黑树的实现,map能够提供快速的查找、插入和删除操作。 4. 迭代器支持:map支持双向迭代器,可以从头到尾或从尾到头遍历元素。 map的常用操作包括: - `insert`:插入一个新元素或者多个元素。 - `erase`:删除一个元素或者删除一组元素。 - `find`:通过键查找对应的值。 - `count`:计算特定键的元素数量(对于map来说,count的结果要么是0要么是1,因为键是唯一的)。 - `lower_bound`/`upper_bound`:查找键的下界或上界。 一个简单的map使用示例代码如下: ```cpp #include <iostream> #include <map> int main() { std::map<std::string, int> ages; // 插入元素 ages.insert(std::make_pair("Tom", 20)); ages.insert(std::make_pair("Bob", 25)); ages.insert(std::make_pair("Alice", 22)); // 查找元素 auto it = ages.find("Bob"); if (it != ages.end()) { std::cout << "Bob is " << it->second << " years old." << std::endl; } else { std::cout << "Bob not found." << std::endl; } // 遍历map for (const auto &pair : ages) { std::cout << pair.first << " is " << pair.second << " years old." << std::endl; } return 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值