📅  最后修改于: 2023-12-03 14:39:51.403000             🧑  作者: Mango
Multiset.lower_bound()函数是C++ STL中Multiset类的一个成员函数,用于查找Multiset中第一个大于等于给定值的元素的迭代器。如果值不存在,它将返回Multiset.end()。
下面是Multiset.lower_bound()函数的语法:
iterator lower_bound(const value_type& val);
其中,val是要查找的元素的值。lower_bound()函数返回一个迭代器,指向Multiset中第一个大于等于val的元素。
下面是一个具体的例子:
#include <iostream>
#include <set>
using namespace std;
int main() {
multiset<int> s = { 1, 2, 3, 4, 4, 4, 5 };
multiset<int>::iterator it;
it = s.lower_bound(4);
if (it == s.end()) {
cout << "4 not found" << endl;
}
else {
cout << "4 found at position " << distance(s.begin(), it) << endl;
}
return 0;
}
运行结果为:
4 found at position 3
该程序首先创建了一个Multiset s,并将一些元素添加到其中。然后,它使用Multiset.lower_bound()函数查找值为4的第一个元素。由于Multiset中有多个值为4的元素,lower_bound()函数返回一个指向Multiset中第一个大于等于4的元素的迭代器,即第一个值为4的元素。在本例中,它指向第4个元素(下标为3)。
请注意,如果Multiset中不存在大于等于给定值的元素,lower_bound()函数将返回end()。因此,程序必须检查返回的迭代器是否等于end(),以避免访问不存在的元素。