C++ STL map容器详解

本文详细介绍了C++标准模板库中的Map容器,包括其基本概念、语法、成员函数及运算符,并对比了Map与Multimap的区别。此外还提供了示例链接帮助理解。

map/multimap

1. map基本概念

用于存储和检索集合中的数据,此集合中的每个元素均为包含数据值和排序键的元素对。 键的值是唯一的,用于自动排序数据。

可以直接更改映射中的元素值。 键值是常量,不能更改。 必须先删除与旧元素关联的键值,才能为新元素插入新键值。

map和multimap区别:

map不允许容器中有重复的元素
multimap允许容器中有重复的元素

2. 语法

template <class Key,
    class Type,
    class Traits = less<Key>,
    class Allocator=allocator<pair <const Key, Type>>>
class map;

3. 参数

Key
要存储在中的键数据类型 map 。

Type
要在 map 中存储的元素数据类型。

Traits
提供一个函数对象的类型,该函数对象可将两个元素值作为排序键进行比较,以确定它们在中的相对顺序 map 。 此参数为可选自变量,默认值是二元谓词 less。

Allocator
一种表示存储的分配器对象的类型,该分配器对象封装有关映射的内存分配和解除分配的详细信息。 此参数为可选参数,默认值为 allocator<pair<const Key, Type> >。

4. 成员函数

成员函数说明
at查找具有指定键值的元素。
begin返回一个迭代器,此迭代器指向 map 中的第一个元素。
cbegin返回一个常量迭代器,该迭代器指向中的第一个元素 map 。
cend返回一个超过末尾常量迭代器。
clear清除 map 的所有元素。
containsC + + 20检查中是否存在具有指定键的元素 map 。
count返回映射中其键与参数中指定的键匹配的元素数量。
crbegin返回一个常量迭代器,该迭代器指向反向中的第一个元素 map 。
crend返回一个常量迭代器,该迭代器指向反向中最后一个元素之后的位置 map 。
emplace将就地构造的元素插入到中 map 。
emplace_hint使用位置提示将就地构造的元素插入到中 map 。
emptytrue 如果为空,则返回 map 。
end返回超过末尾迭代器。
equal_range返回一对迭代器。 此迭代器对中的第一个迭代器指向 map 中其键大于指定键的第一个元素。 此迭代器对中的第二个迭代器指向 map 中其键等于或大于指定键的第一个元素。
erase从指定位置移除映射中的元素或元素范围。
find返回一个迭代器,该迭代器指向中其 map 键与指定键相等的元素的位置。
get_allocator返回用于构造 allocator 的 map 对象的副本。
insert将一个或一系列元素插入到 map 中的指定位置。
key_comp返回用于对中的键进行排序的比较对象的副本 map 。
lower_bound返回一个迭代器,该迭代器指向中其 map 键值等于或大于指定键的键值的第一个元素。
max_size返回 map 的最大长度。
rbegin返回一个迭代器,此迭代器指向反向 map 中的第一个元素。
rend返回一个迭代器,该迭代器指向反向中最后一个元素之后的位置 map 。
size返回 map 中的元素数量。
swap交换两个映射的元素。
upper_bound返回一个迭代器,该迭代器指向中其 map 键值大于指定键的键值的第一个元素。
value_comp检索用于对 map 中的元素值进行排序的比较对象副本。

5. 运算符

名称说明
operator[]将元素插入到具有指定键值的映射。
operator=将一个映射中的元素替换为另一映射副本。

示例链接https://docs.microsoft.com/zh-cn/cpp/standard-library/map-class?view=msvc-160

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Fighting_1997

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值