ITPub博客

首页 > 应用开发 > C/C++ > 检查vector中是否包含给定元素

检查vector中是否包含给定元素

原创 C/C++ 作者:20170405 时间:2020-08-29 15:37:39 0 删除 编辑

  std::count

  最简单的方式是对vector中的指定元素进行计数,如果count不为零,表示该元素存在,那么std::count可以很容易实现。

  #include

  #include

  #include

  int main()

  {

  std::vector v = { 1, 20, 2, 6, 3, 7 };

  int key = 6;

  if (std::count(v.begin(), v.end(), key))

  std::cout << "Element found";

  else

  std::cout << "Element not found";

  return 0;

  }

  std::find

  相比第一种方式,std::find()算法能够更快速的查找给定范围内的值,因为std::count()会变量整个容器以获得元素计数,而find()在找到匹配元素后就立即停止搜索。

  #include

  #include

  #include

  int main()

  {

  std::vector v = { 1, 20, 2, 6, 3, 7 };

  int key = 6;

  if (std::find(v.begin(), v.end(), key) != v.end())

  std::cout << "Element found";

  else

  std::cout << "Element not found";

  return 0;

  }

  std::find_if

  和find相似的还有一个叫 std::find_if()算法,如果查找需要满足某些条件,那么推荐使用该方法。这里我们可以结合lambda来使用,非常简洁。

  比如,要查找列表中是否有元素能被5整 除   郑州性病医院 http://www.120zhongyuanyy.com/

  #include

  #include

  #include

  int main()

  {

  auto lst = {1,4,9,5,11};

  if(std::find_if(lst.begin(),lst.end(),[](auto v){

  if(v%5 ==0)

  return true;

  else

  return false;

  }) != lst.end()){

  std::cout << "Element found";

  }

  else{

  std::cout << "Element not found";

  }

  return 0;

  }


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69979119/viewspace-2715708/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 小程序基础
下一篇: c++
请登录后发表评论 登录
全部评论

注册时间:2020-07-14

  • 博文量
    63
  • 访问量
    39785