公有成员函数
<unordered_set>

std:: unordered_set::find

      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相同,定义为类模板参数的别名().

返回值

如果找到了指定的键,则返回指向该元素的迭代器;否则,如果容器中未找到该键,则返回指向 unordered_set::end 的迭代器。

成员类型iteratorconst_iterator都是 前向迭代器 类型。两者可能是同一迭代器类型的别名。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// 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


复杂度

平均情况:常量。
最坏情况:与 容器大小成线性关系。

迭代器有效性

没有变化。

另见