阅读量:0
在 C++ 中,可以使用各种方法来检测重复元素
- 使用
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; }
- 使用
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::set
和 std::unordered_set
都会删除重复项,所以只需比较它们的大小与原始向量即可判断是否存在重复元素。