📜  C++ STL-Multiset.find()函数(1)

📅  最后修改于: 2023-12-03 14:39:51.398000             🧑  作者: Mango

C++ STL-Multiset.find()函数

简介

在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容器中元素的类型,以及给定的元素是否启用了正确的比较运算符。