21xrx.com
2024-09-20 05:38:27 Friday
登录
文章检索 我的文章 写文章
如何在C++中判断vector是否包含特定元素?
2023-07-11 10:16:05 深夜i     --     --
C++ vector 判断 包含 特定元素

在C++中使用vector容器可以方便地存储一组整型数值,但是在实际使用中,我们可能需要判断一个vector容器中是否包含特定的元素。以下是几种在C++中判断vector 是否包含特定元素的方法。

1. 使用find函数

vector中提供了一个find函数来寻找一个元素是否在vector中出现过。如果该元素出现过,则返回该元素的迭代器;如果未出现,则返回vector的end迭代器。因此,可以通过判断find函数返回值是否等于end迭代器来判断vector中是否包含该元素。下面是一个示例代码:


#include <vector>

#include <algorithm>

int main()

{

  std::vector<int> vec = 5 ;

  int element = 3;

  auto it = std::find(vec.begin(), vec.end(), element);

  if (it != vec.end())

  

    std::cout << "vector contains the element" << std::endl;

  

  else

  

    std::cout << "vector does not contain the element" << std::endl;

  

  return 0;

}

2. 使用count函数

另一个可以判断vector中是否包含特定元素的函数是count。count函数返回vector中与给定值相等的元素数量。因此,如果count函数返回的结果大于0,则说明vector中有该元素。


#include <vector>

#include <algorithm>

int main()

{

  std::vector<int> vec = 5 ;

  int element = 3;

  auto count = std::count(vec.begin(), vec.end(), element);

  if (count > 0)

  

    std::cout << "vector contains the element" << std::endl;

  

  else

  

    std::cout << "vector does not contain the element" << std::endl;

  

  return 0;

}

3. 使用std::find_first_of函数

在需要查找多个元素的时候,可以使用std::find_first_of函数来提高查找效率。该函数返回序列A中第一次出现于序列B中的元素的迭代器。如果没找到,返回序列A的end迭代器。


#include <vector>

#include <algorithm>

int main()

{

  std::vector<int> vec = 4;

  std::vector<int> elements = 4 ;

  auto it = std::find_first_of(vec.begin(), vec.end(), elements.begin(), elements.end());

  if (it != vec.end())

  

    std::cout << "vector contains the element" << std::endl;

  

  else

  

    std::cout << "vector does not contain the element" << std::endl;

  

  return 0;

}

以上是几种在C++中判断vector 是否包含特定元素的方法,其中find函数和count函数的时间复杂度都是O(N),而find_first_of函数的时间复杂度为O(N*M),其中N是vec的元素个数,M是elements的元素个数。在实际使用中,应该根据特定的需求选择合适的函数来判断vector中是否包含特定元素。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复