代码之家  ›  专栏  ›  技术社区  ›  Daniel

用于确定无序_集是否包含键的find()的替代方法

  •  0
  • Daniel  · 技术社区  · 7 年前

    unordered_set<int> S 我想检查一下它是否含有某种 int x

    有没有办法让我写这样的东西 if(S.contains(x)){ /* code */ } if(S.find(x) != S.end()){ /* code */ } ?

    2 回复  |  直到 7 年前
        1
  •  8
  •   jfMR    7 年前

    std::unordered_set find() x 以下列形式出现:

    if (S.find(x) != S.end()) { /* code */ }
    

    count() 成员职能:

    if (S.count(x)) { /* code */ }
    

    std::无序_集 不允许重复,因此 我也会回来 0 1


    unordered_set::count() 成员函数的效率不应低于 unordered_set::find() 因为不可能有重复项,所以只要找到一个元素,就可以停止遍历元素以查找请求密钥的计数。

        2
  •  2
  •   Hanzhou Tang    7 年前

    我想你需要 if(S.count(x)){//do something} . cplusplus.com ,count函数在容器中搜索值为k的元素,并返回找到的元素数。由于无序集合容器不允许重复值,这意味着如果容器中存在具有该值的元素,则函数实际上返回1,否则返回零。

    推荐文章