当前位置:网站首页 > 技术博客 > 正文

multimap和map区别



1、容器简介

multimap 容器 中 可以 存储 多个具有 相同 键 Key 的 键值对 pair 对组元素 ;

其 键 Key 是不是唯一的 , 多个相同的 键 排序时 先后排列在一起 ;

multimap 容器中的元素会 自动排序 , 默认情况下 , 使用 less 仿函数 排序规则 对 键 Key 进行比较排序 , 也可以自定义排序规则 ;

容器示例 : 下面的 multimap 集合中 , 存储了两个 键 是 2 的 键值对 , 分别是 (2, “Red”) 和 (2, “Cyan”) ;

multimap 容器 与 map 容器的 主要区别是 : multimap 容器中的 键 Key 不需要是唯一的 , 在容器中可以有多个 相同的 键 ; 也可以理解为 multimap 的 一个 键 Key 可以对应多个 值 Value ;

2、代码示例 - multimap 容器

代码示例 :

执行结果 :

遍历容器 : 1 Blue 2 Red 2 Cyan 4 Green 5 Black 遍历结束 Press any key to continue . . .

1、插入元素

multimap 容器插入元素 只能使用 insert 函数插入 , 不能使用 数组下标 方式 插入元素 ;

使用下面的 insert 函数插入元素 , 可以插入 键值相同 的元素 ;

代码示例 :

2、删除元素

调用 multimap 的 clear 函数 , 可以 删除所有的元素 ;

调用 multimap 的 erase 函数 , 可以删除指定 键值 / 指定迭代器位置 / 指定迭代器范围 的 元素 ;

3、修改元素

由于 std::multimap 关联容器 中 的 键 Key 不是唯一的 , 不能直接 通过成员函数 修改已有 键值对 元素 , 不能直接通过 键 Key 来定位并修改一个特定的元素 ;

如果想要修改 键 Key 对应的 某一个 值 Value , 只能 先找到这个 键 对应的 多个值 , 然后逐个通过 迭代器 遍历该寻找要修改的值 ;

通过 find 函数 或者 equal_range 函数 , 获取对应的迭代器 ,

4、代码示例 - 插入 / 删除 / 修改 元素

代码示例 :

执行结果 :

版权声明


相关文章:

  • 左连接和右连接的sql语句2024-12-21 16:01:01
  • qt设置界面风格2024-12-21 16:01:01
  • android中textview属性2024-12-21 16:01:01
  • 同步 异步 区别2024-12-21 16:01:01
  • 弹性盒子样式2024-12-21 16:01:01
  • visual studio2010专业版产品密钥2024-12-21 16:01:01
  • qfile.flush2024-12-21 16:01:01
  • lspci命令查看详细信息2024-12-21 16:01:01
  • 实时计算与流式计算2024-12-21 16:01:01
  • java内存分析工具 jsate2024-12-21 16:01:01