溫馨提示×

如何檢測C++中的repeated元素

c++
小樊
116
2024-09-14 09:44:00
欄目: 編程語言

在 C++ 中,可以使用各種方法來檢測重復元素

  1. 使用 std::set
#include<iostream>
#include<vector>
#include <set>

bool hasRepeatedElements(const std::vector<int>& vec) {
    std::set<int> s(vec.begin(), vec.end());
    return s.size() != vec.size();
}

int main() {
    std::vector<int> vec = {1, 2, 3, 4, 5, 6, 7, 8, 9, 1};
    if (hasRepeatedElements(vec)) {
        std::cout << "存在重復元素"<< std::endl;
    } else {
        std::cout << "不存在重復元素"<< std::endl;
    }
    return 0;
}
  1. 使用 std::unordered_set
#include<iostream>
#include<vector>
#include <unordered_set>

bool hasRepeatedElements(const std::vector<int>& vec) {
    std::unordered_set<int> s(vec.begin(), vec.end());
    return s.size() != vec.size();
}

int main() {
    std::vector<int> vec = {1, 2, 3, 4, 5, 6, 7, 8, 9, 1};
    if (hasRepeatedElements(vec)) {
        std::cout << "存在重復元素"<< std::endl;
    } else {
        std::cout << "不存在重復元素"<< std::endl;
    }
    return 0;
}

這兩個示例都會輸出 “存在重復元素”,因為向量 vec 包含重復的元素 1。注意,std::setstd::unordered_set 都會刪除重復項,所以只需比較它們的大小與原始向量即可判斷是否存在重復元素。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女