📅  最后修改于: 2023-12-03 14:39:51.398000             🧑  作者: Mango
在C++ STL(Standard Template Library)中,Multiset是一种关联式容器(Associative Container)。当我们需要将元素按照某一标准来排序时,可以使用Multiset。Multiset和Set的区别是,Set中不允许重复元素,而Multiset中可以有重复元素。find()函数是Multiset中的一个成员函数,用于查找Multiset中是否存在某个元素。
Multiset的成员函数find()的原型如下:
iterator find (const value_type& val);
参数类型值得注意,value_type 不是 multiset 的类型参数,而是 multiset::value_type 的别名,multiset::value_type 是元素类型,也就是multiset容器中存储的数据类型。
该函数需要一个参数,即我们要查找的元素。该参数也可以使用Multiset中的value_type类型进行声明。
find()函数返回一个iterator,如果找到了此元素,则指向该元素的位置;否则,返回Multiset的end()迭代器。
#include <iostream>
#include <set>
using namespace std;
int main()
{
multiset<int> ms;
ms.insert(5);
ms.insert(15);
ms.insert(25);
ms.insert(30);
ms.insert(30);
auto it = ms.find(30);
if (it != ms.end()) {
cout << "Element found in multiset: "<< *it << endl;
} else {
cout << "Element not found in multiset" << endl;
}
return 0;
}
上面的代码中,我们首先创建了一个Multiset,并向其中添加了一些元素。接着,我们使用find()函数查找了元素30,然后判断是否查找到了,如果找到了,则输出“Element found in multiset: 30”,否则输出“Element not found in multiset”。
如果要查找自定义类型的元素,需要在类中重载运算符“<”,以确保Multiset可以正确排序。
Multiset是一种非常便捷的关联式容器,可以用于快速地处理需要排序的元素。find()函数则是Multiset中的一个成员函数,用于查找某个元素。在使用find()函数时,需要注意Multiset容器中元素的类型,以及给定的元素是否启用了正确的比较运算符。