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

std::

multimap::lower_bound

公众成员函数  <map>
      iterator lower_bound (const key_type& k);
const_iterator lower_bound (const key_type& k) const;

返回下界迭代器

返回一个迭代器,该迭代器指向容器中第一个键不在k前面的元素(即,键等于或在k之后)。

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

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

类似的成员函数upper_boundlower_bound具有相同的行为,唯一不同的是, multimap中包含一个键值等于k的元素:在这种情况下,lower_bound返回指向该元素的迭代器, 而upper_bound返回指向下一个元素的迭代器。

☲  参数


K
要比较的键。
成员类型key_type是容器中元素的类型,在multimap中定义为其第一个模板参数(Key)的别名。

☉  返回值



指向容器中第一个键不在k前面的元素的迭代器,如果所有键都在k前面,则设置为multimap::end。 如果multimap对象是const限定的,则函数返回const_iterator对象。否则,它返回一个iterator

成员类型iteratorconst_iterator是指向元素(value_type类型)的双向迭代器类型。 注意,multimap容器中的value_type本身也是一个pair类型:pair<const key_type, multimapped_type>

☣  示例



// multimap::lower_bound/upper_bound
#include <iostream>
#include <map>

int main ()
{
  std::multimap<char,int> mymultimap;
  std::multimap<char,int>::iterator it,itlow,itup;

  mymultimap.insert(std::make_pair('a',10));
  mymultimap.insert(std::make_pair('b',121));
  mymultimap.insert(std::make_pair('c',1001));
  mymultimap.insert(std::make_pair('c',2002));
  mymultimap.insert(std::make_pair('d',11011));
  mymultimap.insert(std::make_pair('e',44));

  itlow = mymultimap.lower_bound ('b');  // itlow points to b
  itup = mymultimap.upper_bound ('d');   // itup points to e (not d)

  // print range [itlow,itup):
  for (it=itlow; it!=itup; ++it)
    std::cout << (*it).first << " => " << (*it).second << '\n';

  return 0;
}

输出:
b => 121
c => 1001
c => 2002
d => 11011

✥ 复杂度



size对数.

☣ 迭代器的有效性



不变.

⇄ 数据竞争


访问容器(const和非const版本都不会修改容器)。
不访问映射值:并发访问或修改元素是安全的.

☂ 异常安全性



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

🍄  另请参阅



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

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