首页 > 应用开发 > C/C++ > 检查vector中是否包含给定元素
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/ ,如需转载,请注明出处,否则将追究法律责任。