C++从数组中找出相同的元素,并且分组存放
时间: 2024-04-15 09:30:31 浏览: 10
你可以使用哈希表来解决这个问题。首先,遍历数组,将数组中的元素作为键,出现的次数作为值存储在哈希表中。然后,遍历哈希表,将出现次数大于1的元素进行分组存放。
下面是一个示例代码:
```cpp
#include <iostream>
#include <unordered_map>
#include <vector>
std::vector<std::vector<int>> findDuplicates(std::vector<int>& nums) {
std::unordered_map<int, int> countMap;
std::vector<std::vector<int>> result;
// 统计元素出现的次数
for (int num : nums) {
countMap[num]++;
}
// 分组存放
for (auto it = countMap.begin(); it != countMap.end(); ++it) {
if (it->second > 1) {
result.push_back({it->first});
}
}
return result;
}
int main() {
std::vector<int> nums = {1, 2, 3, 2, 4, 5, 3, 6, 6};
std::vector<std::vector<int>> duplicates = findDuplicates(nums);
// 输出结果
for (const auto& group : duplicates) {
for (int num : group) {
std::cout << num << " ";
}
std::cout << std::endl;
}
return 0;
}
```
运行以上代码,输出结果为:
```
2
3
6
```
这些是在数组中找到的重复元素,并且它们被分组存放在不同的向量中。