st.lower_bound
时间: 2023-11-12 10:58:40 浏览: 77
st.lower_bound 是什么?
st.lower_bound 是 C++ STL 中 set 和 map 容器的成员函数,用于查找第一个大于等于给定值的元素的迭代器。如果找到了这样的元素,则返回指向该元素的迭代器;否则,返回指向容器中第一个大于该值的元素的迭代器。
例如,对于一个 set<int> st,我们可以使用 st.lower_bound(x) 来查找第一个大于等于 x 的元素。
相关问题
auto t=st.lower_bound(x);
这段代码是在一个名为Solution的类中的check方法中使用的。其中,st是一个set<int>类型的变量,x是一个long类型的变量。这行代码的作用是在set中查找第一个大于等于x的元素,并返回一个指向该元素的迭代器。这个迭代器可以用来访问该元素或者在set中插入一个新元素。需要注意的是,lower_bound函数返回的迭代器指向的元素可能等于x,也可能大于x。如果set中没有大于等于x的元素,则返回set.end()。
下面程序的输出结果是 int a[] = { 2,5,1,4,3,3,2}; multiset <int> st(a,a+7); cout << * st.lower_bound(3) << "," << *st.upper_bound(3) << endl;
下面程序的输出结果会显示集合`st`中第一个大于等于3以及第一个小于等于3但不包括3的具体元素。由于`a`数组中包含两个3,`multiset<int>`会自动去重,所以实际上`lower_bound(3)`返回的第一个元素将是第一个`3`,`upper_bound(3)`返回的第一个元素将是下一个更大的整数,因为集合中没有比3大的元素。
```cpp
int a[] = {2, 5, 1, 4, 3, 3, 2};
multiset<int> st(a, a + 7); // 使用范围初始化,包含数组中从'a'到'a+7'的所有元素
// lower_bound(3) 返回第一个大于或等于3的元素的迭代器,这里实际就是3
auto it_lower = st.lower_bound(3);
// upper_bound(3) 返回第一个大于3的元素的迭代器,这里是4(因为下一个元素是4)
auto it_upper = st.upper_bound(3);
// 输出结果:
cout << *it_lower << "," << *it_upper << endl; // 输出 3,4
```
阅读全文