std::
multiset::find
公众成员函数 <set>
C++98 |
iterator find (const value_type& val) const;
|
C++11 |
const_iterator find (const value_type& val) const;
iterator find (const value_type& val);
|
获取元素迭代器
在容器中搜索一个等价于val的元素,如果找到就返回一个迭代器,否则返回一个
multiset::end的迭代器。
注意,这个函数返回单个元素的迭代器(可能有多个等价元素)。要获取等效元素的整个范围,请参见
multiset::equal_range。
如果容器的比较对象反射性返回
false(即,无论元素作为参数以何种顺序传递),
则认为
multiset中的两个元素是等效的。
☲ 参数
-
val
-
要搜索的值。
成员类型value_type是容器中元素的类型,在multiset中定义为它的第一个模板形参(T)的别名。
☉ 返回值
指向元素的迭代器(如果找到val),否则
multiset::end。
成员类型
iterator和const_iterator是指向元素的双向迭代器类型。
☣ 示例
// multiset::find
#include <iostream>
#include <set>
int main ()
{
std::multiset<int> mymultiset;
std::multiset<int>::iterator it;
// set some initial values:
for (int i=1; i<=5; i++) mymultiset.insert(i*10); // 10 20 30 40 50
it=mymultiset.find(20);
mymultiset.erase (it);
mymultiset.erase (mymultiset.find(40));
std::cout << "mymultiset contains:";
for (it=mymultiset.begin(); it!=mymultiset.end(); ++it)
std::cout << ' ' << *it;
std::cout << '\n';
return 0;
}
|
输出:
mymultiset contains: 10 30 50
✥ 复杂度
集合大小呈对数.
☣ 迭代器的有效性
不变.
⇄ 数据竞争
访问容器(const和非const版本都不会修改容器)。
并发地访问multiset集合的元素是安全的。
☂ 异常安全性
强保证:如果抛出异常,容器中不会有任何变化。
🍄 另请参阅
multiset::equal_range |
获取相等元素的范围(公众成员函数) |
multiset::count |
具有特定值的元素数量(公众成员函数) |
multiset::lower_bound |
返回迭代器下界(公众成员函数) |
multiset::upper_bound |
返回迭代器上界(公众成员函数) |