如何通過(guò)哈希表實(shí)現(xiàn)C++中的去重

c++
小樊
85
2024-08-07 16:21:22

在C++中使用哈希表實(shí)現(xiàn)去重操作可以通過(guò)unordered_set容器來(lái)實(shí)現(xiàn),unordered_set是C++ STL中的容器,它是基于哈希表實(shí)現(xiàn)的集合,可以保證元素的唯一性。

下面是一個(gè)使用unordered_set實(shí)現(xiàn)去重的示例代碼:

#include <iostream>
#include <unordered_set>
#include <vector>

int main() {
    std::vector<int> nums = {1, 2, 3, 2, 4, 5, 3, 6};

    std::unordered_set<int> unique_nums;

    for (int num : nums) {
        unique_nums.insert(num);
    }

    for (int num : unique_nums) {
        std::cout << num << " ";
    }

    return 0;
}

在上面的代碼中,首先定義了一個(gè)vector nums,然后使用unordered_set unique_nums來(lái)存儲(chǔ)不重復(fù)的元素。遍歷nums中的元素,將每個(gè)元素插入到unique_nums中。最后遍歷unique_nums輸出不重復(fù)的元素。

通過(guò)unordered_set容器可以很方便地實(shí)現(xiàn)去重操作,而且時(shí)間復(fù)雜度較低,是一種效率較高的去重方法。

0