c++ 检查vector是否有重复
时间: 2023-08-23 09:09:28 浏览: 316
要检查一个 C++ 的 vector 是否有重复元素,你可以使用 `std::set` 数据结构来实现。`std::set` 是一个有序的容器,它会自动去除重复的元素。你可以将 vector 元素逐个插入到 set 中,然后比较 set 的大小和 vector 的大小来判断是否有重复元素。以下是一个示例代码:
```cpp
#include <iostream>
#include <vector>
#include <set>
bool hasDuplicates(const std::vector<int>& vec) {
std::set<int> uniqueElements(vec.begin(), vec.end());
return uniqueElements.size() != vec.size();
}
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
std::cout << "Has duplicates? " << (hasDuplicates(vec) ? "Yes" : "No") << std::endl;
std::vector<int> vecWithDuplicates = {1, 2, 3, 4, 4};
std::cout << "Has duplicates? " << (hasDuplicates(vecWithDuplicates) ? "Yes" : "No") << std::endl;
return 0;
}
```
上述代码中的 `hasDuplicates` 函数会返回一个布尔值,指示 vector 中是否有重复元素。在 `main` 函数中,我们分别测试了两个示例:一个没有重复元素的 vector 和一个有重复元素的 vector。
阅读全文