C/C++知识点之C++ 关联容器 set
小标
2019-01-10
来源 :
阅读 1031
评论 0
摘要:本文主要向大家介绍了 C/C++知识点之C++ 关联容器 set,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。
本文主要向大家介绍了 C/C++知识点之C++ 关联容器 set,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。
正文
C++的容器类型可以分为顺序容器和关联容器两大类。顺序容器的知识可以参看我上篇的随笔《C++顺序容器知识总结》。关联容器支持通过键值来高效的查找和读取元素,这是它和顺序容器最大的区别。两种基本的关联容器类型是map和set。map的元素以键-值对的形式组织:键用作元素在map中的索引,而值则表示所存储和读取的数据。set仅包含一个键,并有效的支持关于某个键是否存在的查询。下表是关联容器的类型:
map 关联数组;元素通过键来存储和读取set 大小可变的集合,支持通过键实现快速读取
multimap 支持同一个键多次出现的map类型
multiset 支持同一个键多次出现的set类型
回到顶部
一.pair类型
在开始介绍关联容器之前,我们需要了解一种与之相关的标准库类型——pair类型,该类型定义在头文件utilty中。下表是pair类型提供的操作。
pair
p1; 创建一个空的pair对象,它的两个元素分别是T1和T2类型,采用值初始化
pair p1(v1,v2); 创建一个pair对象,它的两个元素分别是T1和T2类型,其中first成员初始化为v2,second成员初始化为v2。
make_pair(v1,v2) 以v1,v2值创建一个新的pair对象,其元素类型分别是v1,v2类型
p1<p2 两个pair对象之间的小于运算,遵循字典顺序
p1==p2 如果两个pair对象的first和second值依次相等,则它们相等
p.first 返回p中名为first的数据成员
p.second 返回p中名为second的数据成员
可以看到,和容器一样,pair也是一种模板类型。它的数据成员是公有的,分别命名为first和second,只需点操作就可以访问其成员。其定义初始化的操作也很简单,除了构造函数外,pair还提供了一个make_pair函数来创建pair对象,并赋值给已存在的pair对象。
pair next_auth;string first,last;while(cin>>first>>last)
next_auth=make_pair(first,last);//上面的赋值操作等效于下面这条语句next_auth=pair(first,last);
回到顶部
二.map类型
map是键-值对的集合。map类型可以理解为关联数组:可以使用键作为下标来获取一个值,正如内置数组类型一样。map和set等关联容器共享大部分顺序容器的操作。关联容器不提供front、push_front、pop_front、back、push_back和pop_back操作。
1.map对象的定义
在使用map对象之前,需要在头文件中包含map头。其定义示例如下:
#include
本文由 @小标 发布于职坐标。未经许可,禁止转载。
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢
快给朋友分享吧~
评论(0)