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

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

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

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(),以避免访问不存在的元素。