关联容器——map、set
map类型通常被称为关联数组,与正常数组类似,不同之处在于其下标不必是整数。我们通过一个关键字而不是位置来查找值(键值对)。
与之相对,set就是关键字的简单集合。当只是想知道一个值是否存在时,set是最有用的。
类似顺序容器,关联容器也是模板,为了定义一个map,我们必须指定关键字和值得类型。例:map<string,int>test;一个test的空map,关键字是string、值是int的。set<string> e={"hello"};设置关键字集合,类型为string。当定义一个map时,必须指明关键字类型又指明值类型;而定义一个set时,只需指明关键字类型,因为set中没有值。当初始化map时,我们将每个键值对包围在花括号中:{key,value}。
一个map或者set中的关键字必须是唯一的,即,对于一个给定的关键字,只能有一个元素的关键字等于它。容器multimap和multiset没有此限制,它们都允许多个元素具有相同的关键字。对于有序容器----map、multimap、set、multiset,关键字类型必须定义元素比较的方法。默认情况下,标准库使用关键字类型的<运算符来比较两个关键字。在集合类型中(set类),关键字类型就是元素类型;在映射类型中(map类),关键字类型是元素第一部分的类型。
pair类型:
在介绍关联容器操作之前,我们需要了解名为pair的标准库类型,它定义在头文件utility中。一个pair保存两个数据成员,类似容器,pair是一个用来生成特定类型的模板。——P380 c++ primer 5th。
这里的知识点一一罗列有点耗时间,直接看书学了p381开始。
欢迎加入作者的小圈子
扫描下方左边二维码加入QQ交流群,扫描下方右边二维码关注个人微信公众号并获取更多隐藏干货,QQ交流群:816747642 微信公众号:Crystal软件学堂
![](https://images.cnblogs.com/cnblogs_com/yangguang-it/1907263/o_201227061707QQ20201227141844.png)
![](https://images.cnblogs.com/cnblogs_com/yangguang-it/1704156/o_200415115115qrcode_for_gh_5c7d1da35871_258.jpg)
作者:Crystal软件学堂 bilibili视频教程地址:https://space.bilibili.com/5782182 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在转载文章页面给出原文连接。 如果你觉得文章对你有所帮助,烦请点个推荐,你的支持是我更文的动力。 文中若有错误,请您务必指出,感谢给予我建议并让我提高的你。 |