如何检测C++中的repeated元素

avatar
作者
猴君
阅读量:0

在 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 都会删除重复项,所以只需比较它们的大小与原始向量即可判断是否存在重复元素。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!