std::
unordered_set::find
公众成员函数 <unordered_set>
iterator find ( const key_type& k );
const_iterator find ( const key_type& k ) const;
|
获取元素迭代器
在容器中查找值为
k的元素,如果找到则返回指向该元素的迭代器,
否则返回指向
unordered_set::end(容器末端之后的元素)的迭代器。
另一个成员函数
unordered_set::count可用于检查特定元素是否存在。
unordered_set类型中的所有迭代器对元素都具有
const访问权限
(即使那些类型没有以
const_作为前缀的迭代器也是如此):元素可以插入或移除,但在容器中不能修改。
☲ 参数
-
K
-
要搜索的值。
成员类型key_type是容器中元素的类型。在unordered_set容器中,
它与value_type相同,定义为类的第一个模板形参(Key)的别名。
☉ 返回值
如果在容器中找到指定的值,则返回该元素的迭代器;如果在容器中找不到该元素,则返回
unordered_set::end。
成员类型
iterator和
const_iterator是前向迭代器类型。两者都可以是相同迭代器类型的别名。
☣ 示例
// unordered_set::find
#include <iostream>
#include <string>
#include <unordered_set>
int main ()
{
std::unordered_set<std::string> myset = { "red","green","blue" };
std::string input;
std::cout << "color? ";
getline (std::cin,input);
std::unordered_set<std::string>::const_iterator got = myset.find (input);
if ( got == myset.end() )
std::cout << "not found in myset";
else
std::cout << *got << " is in myset";
std::cout << std::endl;
return 0;
}
|
输出:
color? blue
blue is in myset
✥ 复杂度
平均情况下:常数。
最坏情况:容器大小呈线性。
☣ 迭代器的有效性
不变.
🍄 另请参阅
unordered_set::count |
具有特定值的元素数量(公众成员函数) |
unordered_set::equal_range |
获取具有特定键的元素范围(公众成员函数) |
unordered_set::begin |
返回一个指向unordered_set容器或其中一个桶开头的迭代器(公众成员函数) |