📅  最后修改于: 2023-12-03 15:37:18.506000             🧑  作者: Mango
在 C++ 中,set 是一个标准库容器,用于存储唯一元素。使用 set 可以轻松地获得一组数据中的唯一值。但是,有时候我们需要获取重复项。本文将介绍如何在 C++ 中使用 set 获取重复项。
首先,我们需要了解 set 的基本用法。
set 的特点:
set 常用的操作:
要获取重复项,我们需要用到一个 set 中的一个特性:它不能存储重复元素。所以,我们可以通过将所有元素插入到 set 中,然后找到所有出现次数大于 1 的元素。
下面是示例代码:
#include <iostream>
#include <set>
#include <vector>
int main() {
std::vector<int> nums = {1, 2, 3, 2, 4, 5, 1, 3};
std::set<int> s;
std::set<int> duplicates;
for (auto i : nums) {
if (s.count(i) == 1) {
duplicates.insert(i);
} else {
s.insert(i);
}
}
for (auto i : duplicates) {
std::cout << i << " ";
}
std::cout << std::endl;
return 0;
}
我们创建了一个包含重复元素的 std::vector
,然后将所有元素插入到一个 std::set
中。如果插入时返回值为 1,则说明此前已经插入过该元素,将其插入到另外一个 set 中。最后,我们打印输出所有重复元素。
输出:
1 2 3
使用 set 可以方便地获取一组数据中的唯一值,但如果需要获取重复项,也不难。只需要将所有元素插入到 set 中,然后找到所有出现次数大于 1 的元素即可。