📌  相关文章
📜  c++中两个数组中的相等元素(1)

📅  最后修改于: 2023-12-03 14:59:49.846000             🧑  作者: Mango

C++中找出两个数组中的相等元素

通常情况下,在C++中找出两个数组中的相等元素,需要遍历两个数组来比较每个元素。在本文中,我们将介绍两种方法来解决这个问题。

方法一:使用嵌套循环

第一种方法是使用嵌套循环来比较两个数组中的每个元素。假设我们有两个数组A和B,它们的大小分别为nm。下面是示例代码:

int A[] = {1, 2, 3, 4, 5};
int B[] = {3, 4, 5, 6, 7};
int n = sizeof(A) / sizeof(A[0]);
int m = sizeof(B) / sizeof(B[0]);

for (int i = 0; i < n; i++) {  // 遍历数组A
  for (int j = 0; j < m; j++) {  // 遍历数组B
    if (A[i] == B[j]) {  // 如果相等,则输出这个元素
      cout << A[i] << endl;
    }
  }
}
方法二:使用哈希表

第二种方法使用哈希表来解决这个问题。哈希表是一种数据结构,它能快速地查找一个元素是否存在。在C++中,我们可以使用unordered_set来实现哈希表。下面是示例代码:

int A[] = {1, 2, 3, 4, 5};
int B[] = {3, 4, 5, 6, 7};
int n = sizeof(A) / sizeof(A[0]);
int m = sizeof(B) / sizeof(B[0]);

unordered_set<int> setA(A, A + n);  // 将数组A转换成哈希表
for (int j = 0; j < m; j++) {  // 遍历数组B
  if (setA.find(B[j]) != setA.end()) {  // 如果值在哈希表中,则输出这个元素
    cout << B[j] << endl;
  }
}
总结

我们已经介绍了两种在C++中查找两个数组中相等元素的方法,分别是使用嵌套循环和使用哈希表。使用哈希表的方法比使用嵌套循环的方法更快,但是占用的空间也更大。根据实际情况,可以选择最适合自己的方法。