C++ STL中的multiset find()函数
multiset::find() 是C++ STL中的一个内置函数,它返回一个指向multiset容器中搜索的元素的lower_bound的迭代器。如果未找到该元素,则迭代器指向集合中最后一个元素的位置之后。
语法:
multiset_name.find(element)
参数: 该函数接受一个必需的参数 element 指定要在multiset容器中搜索的元素。
返回值: 该函数返回一个迭代器,该迭代器指向multiset容器中搜索的元素。如果未找到该元素,则迭代器指向multiset中最后一个元素之后的位置。
时间复杂度: 如果n是multiset的大小,则multiset::find()函数的时间复杂度为对数阶的n即O(log(n))。
下面的程序说明了上述函数。
程序1:
//CPP程序演示了
//multiset::find()函数
#include <bits/stdc++.h>
using namespace std;
int main()
{
//初始化multiset
multiset<int> s;
s.insert(1);
s.insert(4);
s.insert(2);
s.insert(5);
s.insert(3);
s.insert(3);
s.insert(3);
s.insert(5);
cout << "set元素是:";
for (auto it = s.begin(); it != s.end(); it++)
cout << *it << " ";
//迭代器指向
//2所在的位置
auto pos = s.find(3);
//打印set元素
cout << "\n3之后的set元素是:";
for (auto it = pos; it != s.end(); it++)
cout << *it << " ";
return 0;
}
输出:
The set elements are: 1 2 3 3 3 4 5 5
The set elements after 3 are: 3 3 3 4 5 5
Programs 2:
// CPP程序演示
//multiset::find()函数
#include <bits/stdc++.h>
using namespace std;
int main()
{
//初始化multiset
multiset<char> s;
s.insert('a');
s.insert('a');
s.insert('a');
s.insert('b');
s.insert('c');
s.insert('a');
s.insert('a');
s.insert('c');
cout << "set元素是:";
for (auto it = s.begin(); it != s.end(); it++)
cout << *it << " ";
//迭代器指向
//'b'所在的位置
auto pos = s.find('b');
//打印set元素
cout << "\nb之后的set元素是:";
for (auto it = pos; it != s.end(); it++)
cout << *it << " ";
return 0;
}
输出:
The set elements are: a a a a a b c c
The set elements after b are: b c c