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

std::

multimap::find

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

获取元素迭代器

在容器中查找键值等于k的元素,如果找到则返回该元素的迭代器,否则返回一个multimap::end的迭代器。

如果容器的比较对象反射性返回false(即,无论元素作为参数以何种顺序传递), 则认为两个键是等价的。

注意,这个函数返回单个元素的迭代器(可能有多个具有相同键值的元素)。要获取等效元素的整个范围, 请参见multimap::equal_range.

☲  参数


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

☉  返回值



如果找到具有指定键值的元素,则返回该元素的迭代器;否则返回multimap::end

如果multimap对象是const限定的,则函数返回const_iterator对象。否则,它返回一个iterator

成员类型iteratorconst_iterator是指向元素(value_type类型)的双向迭代器类型。 注意,映射容器中的value_typepair<const key_type, multimapped_type>的别名。

☣  示例



// multimap::find
#include <iostream>
#include <map>

int main ()
{
  std::multimap<char,int> mymm;

  mymm.insert (std::make_pair('x',10));
  mymm.insert (std::make_pair('y',20));
  mymm.insert (std::make_pair('z',30));
  mymm.insert (std::make_pair('z',40));

  std::multimap<char,int>::iterator it = mymm.find('x');
  mymm.erase (it);
  mymm.erase (mymm.find('z'));

  // print content:
  std::cout << "elements in mymm:" << '\n';
  std::cout << "y => " << mymm.find('y')->second << '\n';
  std::cout << "z => " << mymm.find('z')->second << '\n';

  return 0;
}

输出:
elements in mymm:
y => 20
z => 40

✥ 复杂度



size对数.

☣ 迭代器的有效性



不变.

⇄ 数据竞争


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

☂ 异常安全性



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

🍄  另请参阅



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

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