C++ STL multimap容器

一、前言

multimap容器和map容器基本类似,在这里只说明map容器没有的内容,或者与map容器的区别。
和 map 容器的区别在于:multimap 容器中可以同时存储多(≥2)个键相同的键值对。

二、方法

和 map 容器相比,multimap 未提供 at() 成员方法,也没有重载 [] 运算符。因此这里说一下multimap容器获取值的方法。

1、获取值

1)方法1

std::multimap<int, string> multimap{ {1,"lin"},{1,"wen"},{1, "kai"},{2,"li"},{2,"wu"},{3,"huang"} };
    
int nCount = multimap.count(1);
std::cout << "nCount: " << nCount << std::endl;

std::multimap<int, string>::iterator mtmapIter = multimap.begin();
for (int i = 0; i < nCount; i++)
{
    std::cout << mtmapIter->first << "  " << mtmapIter->second << std::endl;
    ++mtmapIter;
}

2)方法2

std::multimap<int, string> multimap{ {1,"lin"},{1,"wen"},{1, "kai"},{2,"li"},{2,"wu"},{3,"huang"} };
    
int nCount = multimap.count(1);
std::cout << "nCount: " << nCount << std::endl;
std::multimap<int, string>::iterator mtmapBeginIter = multimap.lower_bound(1);

for (; mtmapBeginIter != multimap.upper_bound(1); mtmapBeginIter++)
{
    std::cout << mtmapBeginIter->first << "  " << mtmapBeginIter->second << std::endl;
}

3)方法3

std::multimap<int, string> multimap{ {1,"lin"},{1,"wen"},{1, "kai"},{2,"li"},{2,"wu"},{3,"huang"} };
    
int nCount = multimap.count(1);
std::cout << "nCount: " << nCount << std::endl;
pair<std::multimap<int, string>::iterator, std::multimap<int, string>::iterator> iter = multimap.equal_range(1);

for (; iter.first != iter.second; iter.first++)
{
    std::cout << iter.first->first << "  " << iter.first->second << std::endl;
}

结果如下:
image.png

小菜鸟一枚,望各位大佬不吝指教,用于记录学习

1 声望
0 粉丝
0 条评论
推荐阅读
C++ STL multiset容器
multiset 类模板提供的构造函数,和 set 类模板中提供创建 set 容器的构造函数,是完全相同的。因此创建set容器的方式适用于创建multiset容器。具体的方法参考set容器:[链接]

等待樱花盛开阅读 970

麒麟操作系统 (kylinos) 从入门到精通 - 研发环境 - 第二十一篇 C++/C语言开发环境搭建
类别:笔记本型号:中国长城 NF14C硬件平台:飞腾处理器(ArmV8 指令集)系统:银河麒麟操作系统 V10 SP1(2203) 关键词:信创,麒麟系统,linux,c++,c,内核飞腾,arm

码上世界1阅读 2.3k评论 1

封面图
万字避坑指南!C++的缺陷与思考(下)
导读 | 在万字避坑指南!C++的缺陷与思考(上)一文中,微信后台开发工程师胡博豪,分享了C++的发展历史、右值引用与移动语义、类型说明符等内容,深受广大开发者喜爱!此篇,我们邀请作者继续总结其在C++开发过...

腾讯云开发者5阅读 484评论 1

一种将函数模板定义和声明分开的方法
&emsp;&emsp;在 C++ 中为了操作简洁引入了函数模板。所谓的函数模板实际上是建立一个通用函数,其函数类型或形参类型不具体指定,用一个虚拟的类型来表达,这个通用函数就称为函数模板。

Sharemaker阅读 864

封面图
Workflow的JSON解析器
Workflow中有一个小而美的json-parser,一千行代码写得非常典雅精致。不仅可以学习到经典的C语言写法、递归解析的架构、与内核近似的编码风格、简洁的接口设计,而且也非常方便引入项目中作为轻量级的json解析器...

1412阅读 812

C发展史的特点与常见的C语言程序
1、1963年,剑桥人学将ALGOL 60语言发展成为CPL语言。2、1967年,朝侨大学的Martin Richards 对CPL语言进行了简化,产生了BCPL语言。3、1970年,美国贝尔实验室的Ken Thompson将BCPL中的精华提炼出来,并为它起了...

菜鸟明轩阅读 775

C语言中的4大基本数据类型
⭐基本数据类型 整型 int 字符型 char 实型(浮点型):单精度实型 float 双精度实型 double⭐构造类型数组类型结构类型 struct联合类型 union枚举类型 enum⭐指针类型⭐空类型 void

菜鸟明轩阅读 746

封面图

小菜鸟一枚,望各位大佬不吝指教,用于记录学习

1 声望
0 粉丝
宣传栏