C++ multimap 容器

简介

在 C++ 中,multimap 是标准库中的一个关联容器,它包含键值和映射值对,并且允许多个元素具有相同的键multimap 自动将其元素保持在排序顺序中,基于键的比较,这使得它非常适合用于需要存储一系列与单个键相关联的值的情况。

具体使用

创建

std::multimap<DataType, DataType> mm;

map创建相同,DataType是数据类型。

插入元素

insert函数

multimap使用insert函数进行元素插入,支持单个元素和多个元素插入;

单个元素
// 方式一
mm.insert({data, data});

// 方式二
mm.insert(make_pair(data, data));
范围插入
std::multimap<int, int> srcMap = {{1,1},{1,2}};
mm.insert(srcMap.begin(), srcMap.end());

emplace函数

mm.emplace(4, 4); 

insert和emplace的区别

  • insert是先构造元素,然后在插入。
  • emplace是直接在容器内部构造元素。

查找元素

find函数

multimap允许有多个相同键的元素。find函数仅返回第一个匹配键的迭代器,如果找不到任何匹配键的元素,则返回end()迭代器。

auto it = mm.find(3);

equal_range函数

auto it = mm.equal_range(3);
for(auto item = it.frist; it.frist != it.second; it.frist++)
{
	cout<<item->first<<item->second<<endl;
}

std::multimapequal_range() 成员函数返回一个包含两个迭代器的 std::pair 对象。这两个迭代器分别指向容器中键值等于指定键的第一个元素和最后一个元素之后的位置。当最后一个元素匹配时,second指向end();

删除元素

erase函数

使用erase删除所有匹配键的元素

mm.erase(1); // 删除所有键为1的元素

使用erase删除迭代器指向的元素

mm.erase(it); // it是迭代器指针  删除it指向的元素

扩展

multimap 的内部实现通常基于红黑树这种平衡二叉搜索树,搜索、插入和删除的时间复杂度为O(log N)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一直在找资料的菜鸟

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

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

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

打赏作者

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

抵扣说明:

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

余额充值