Home C&C++函数库 c++ 语法 程序源码 Linux C库

std::

multiset::lower_bound

公众成员函数  <set>
C++98
iterator lower_bound (const value_type& val) const;

返回迭代器下界

返回一个迭代器,指向容器中第一个不被认为在val之前的元素(即,它是等价的或在val之后)。

该函数使用其内部比较对象(key_comp)来确定这一点, 返回一个指向第一个key_comp(element,val)会返回false的元素的迭代器。

如果multiset类是用默认比较类型(less)实例化的,则该函数返回一个指向第一个不小于val的元素的迭代器。

类似的成员函数upper_boundlower_bound具有相同的行为,除了multiset中包含等同于val的元素:在这种情况下, lower_bound返回一个指向此类元素的第一个元素的迭代器,而upper_bound返回一个指向最后一个元素后面的元素的迭代器。

☲  参数


val
要比较的值。
成员类型value_type是容器中元素的类型,在multiset中定义为它的第一个模板形参(T)的别名。

☉  返回值



一个迭代器,指向容器中第一个不在val之前的元素,如果所有元素都在val之前,则使用multiset::end

成员类型iteratorconst_iterator是指向元素的双向迭代器类型。

☣  示例



// multiset::lower_bound/upper_bound
#include <iostream>
#include <set>

int main ()
{
  std::multiset<int> mymultiset;
  std::multiset<int>::iterator itlow,itup;

  for (int i=1; i<8; i++) mymultiset.insert(i*10); // 10 20 30 40 50 60 70

  itlow = mymultiset.lower_bound (30);             //       ^
  itup = mymultiset.upper_bound (40);              //             ^

  mymultiset.erase(itlow,itup);                    // 10 20 50 60 70

  std::cout << "mymultiset contains:";
  for (std::multiset<int>::iterator it=mymultiset.begin(); it!=mymultiset.end(); ++it)
    std::cout << ' ' << *it;
  std::cout << '\n';

  return 0;
}

注意,lower_bound(30)返回一个指向30的迭代器,而upper_bound(40)返回一个指向50的迭代器。
输出:
mymultiset contains: 10 20 50 60 70

✥ 复杂度



集合大小呈对数.

☣ 迭代器的有效性



不变.

⇄ 数据竞争


访问容器(const和非const版本都不会修改容器)。
并发地访问multiset集合的元素是安全的。

☂ 异常安全性



强保证:如果抛出异常,容器中不会有任何变化。

🍄  另请参阅



multiset::upper_bound 返回迭代器上界(公众成员函数)
multiset::equal_range 获取相等元素的范围(公众成员函数)
multiset::find 获取元素迭代器(公众成员函数)
multiset::count 具有特定值的元素数量(公众成员函数)

联系我们 免责声明 关于CandCplus 网站地图