首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C/C++如何从2个数组中获取唯一值?

首先,我们假设两个数组分别为arr1arr2,且它们都具有唯一值。

要从一个数组中获取唯一值,可以使用哈希表(在C++中可以使用unordered_set)来存储数组中的元素,然后遍历另一个数组,将每个元素插入到哈希表中,如果该元素已经存在于哈希表中,则不需要再次插入。

具体步骤如下:

  1. 创建一个哈希表unordered_set,用于存储数组中的元素。
  2. 遍历数组arr1,对于每个元素,检查它是否已经存在于哈希表中。如果不存在,则将该元素插入到哈希表中。
  3. 遍历数组arr2,对于每个元素,检查它是否已经存在于哈希表中。如果不存在,则将该元素插入到哈希表中。
  4. 最后,返回哈希表中的所有元素,即为两个数组中的所有唯一值。

在C++中,可以使用STL库中的unordered_set来实现哈希表。以下是一个示例代码:

代码语言:txt
复制
#include <iostream>
#include <vector>
#include <unordered_set>

using namespace std;

int main() {
    vector<int> arr1 = {1, 2, 3, 4, 5};
    vector<int> arr2 = {3, 4, 5, 6, 7};

    unordered_set<int> unique_values;

    // 遍历数组arr1,将每个元素插入到哈希表中
    for (int i = 0; i < arr1.size(); i++) {
        if (unique_values.find(arr1[i]) == unique_values.end()) {
            unique_values.insert(arr1[i]);
        }
    }

    // 遍历数组arr2,将每个元素插入到哈希表中
    for (int i = 0; i < arr2.size(); i++) {
        if (unique_values.find(arr2[i]) == unique_values.end()) {
            unique_values.insert(arr2[i]);
        }
    }

    // 输出哈希表中的所有元素
    for (auto it : unique_values) {
        cout << it << " ";
    }
    cout << endl;

    return 0;
}

在这个示例代码中,我们首先定义了两个数组arr1和arr2,然后定义了一个unordered_set类型的变量unique_values来存储数组中的唯一值。接下来,我们使用两个for循环遍历数组arr1和arr2,将每个元素插入到哈希表中。最后,我们输出哈希表中的所有元素。

当我们运行这个示例代码时,输出结果为:

代码语言:txt
复制
1 2 3 4 5 6 7

这是两个数组中的所有唯一值。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的合辑

领券