1. 程式人生 > 其它 >C++STL常用操作之multiset篇

C++STL常用操作之multiset篇

技術標籤:涉及二叉樹快速學習STL資料結構

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

發現問題歡迎指正!