使用STL map/set/multiset/multimap,如何找到大于或等于搜索键的第一个值?

Dou*_* T. 4 c++ containers stl

假设我有一组值,存储在std :: set中:

{1,2,6,8}

我有一个搜索键,比方说,3.我想将3放入一个函数并获得大于或等于3的第一个值,在这种情况下我想得到6.

当然,map/set/multimap /和set中提供的find()函数将返回此情况的结束迭代器.在这种情况下是否有类似的函数可以返回6?

Ada*_*eld 12

是:upper_bound(X)返回指向大于的第一个元素的迭代器X.还有一个lower_bound(X)函数返回指向第一个元素的迭代器不小于X.因此,半开区间中的所有元素[lower_bound(X), upper_bound(X))将等于X.