C++STL常用操作之multiset篇

C++STL常用操作之multiset篇


简介:

multiset和set大致上是一样的,都是集合。

set详细介绍见:https://blog.csdn.net/qq_45985728/article/details/112791689

multiset和set不同的点在于multiset允许存在重复的元素。


	multiset<int> multi;
	multi.insert(2);
	multi.insert(3);
	multi.insert(2);
	multi.insert(1);
	multi.insert(2);
	for (auto it = multi.begin(); it != multi.end(); ++it)
		cout << *it << endl;

在这里插入图片描述

我们可以看出,multiset里面,确实是允许重复元素出现的。


	multiset<int> multi;
	multi.insert(2);
	multi.insert(3);
	multi.insert(2);
	multi.insert(1);
	multi.insert(2);
	multi.erase(2);
	for (auto it = multi.begin(); it != multi.end(); ++it)
		cout << *it << endl;

在这里插入图片描述

而multiset里面的erase函数对于指定的key值来说,是删除所有的等于key值的元素。如上程序中,原始状态是1、2、2、2、3,但是只执行了一句erase(2)后,剩余的元素只有1、3了。


	multiset<int> multi;
	multi.insert(2);
	multi.insert(2);
	cout << multi.count(2);

程序输出结果是2

我们前面set篇提到,count的返回值只能是1或0(存在或者不存在)。由于multiset允许重复元素的出现,所以count的返回值可能大于1。


multiset

发现问题欢迎指正!

猜你喜欢

转载自blog.csdn.net/qq_45985728/article/details/112794484