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

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;
发布了20 篇原创文章 · 获赞 43 · 访问量 1258

猜你喜欢

转载自blog.csdn.net/qq_44643644/article/details/105440443