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

std::

multiset::equal_range

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

获取相等元素的范围

返回一个范围的边界,该范围包括容器中等于val的所有元素。

如果没有找到匹配项,则返回的范围长度为0; 根据容器内部比较对象(key_comp),两个迭代器都指向val之后的第一个元素。

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

☲  参数


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

☉  返回值



该函数返回一个pair,其成员pair::first是范围的下界 (与lower_bound相同),pair::second是范围的上界(与upper_bound相同)。

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

☣  示例



// multiset::equal_elements
#include <iostream>
#include <set>

typedef std::multiset<int>::iterator It;  // aliasing the iterator type used

int main ()
{
  int myints[]= {77,30,16,2,30,30};
  std::multiset<int> mymultiset (myints, myints+6);  // 2 16 30 30 30 77

  std::pair<It,It> ret = mymultiset.equal_range(30); //      ^        ^

  mymultiset.erase(ret.first,ret.second);

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

  return 0;
}

输出:
multiset contains: 2 16 77

✥ 复杂度



集合大小呈对数.

☣ 迭代器的有效性



不变.

⇄ 数据竞争


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

☂ 异常安全性



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

🍄  另请参阅



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

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