学习C++之STL:探讨对set进行insert操作时的返回值、pair对组的学习

久未见 提交于 2020-04-12 07:37:29

set和multiset的区别是前者不允许元素重复,后者允许。这区别具体体现在set插入元素时会检查元素,multiset不会,在insert函数本身,也很好的体现出了这一差异。(通过VS2019选中后右键转到定义查看)

set的insert函数返回值是pair对组型。队组的第一个成员是指向欲插入元素的迭代器,第二个成员是一布尔量,表示本次操作是否成功。
在这里插入图片描述

multiset的insert函数的返回值是指向所插入元素的迭代器。
在这里插入图片描述
对组是C++中成对出现的一种数据类型,利用pair可以使函数一次返回两个值。
接下来介绍pair对组型数据的用法。
创建:



pair<type1,type2> p(value1,value2);
pair<type,type2> p=make_pair(value1,value2);

读取数据:

p.first;//返回对组的从左数第一个类型的数据
p.second;//返回对组的从右数第二个类型的数据

赋值: pair是C++的内置数据类型之一,不用添加任何头文件就能使用,故赋值运算符=支持pair型数据。

所以在向set插入元素后可以通过insert的返回值查询元素的迭代器和元素成功插入与否。例如:

//这种方式只能访问一次,且只能访问一个成员
(set.insert(elem)).first;//查询迭代器
(set.insert(elem)).second;//查询插入成功与否
//这种方式可以访问多次,且可以访问所有成员
pair<set<type>::iterator,bool> ret=set.insert(elem);
ret.first;
ret.second;
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!