C++ 求一个array的distinct value
时间: 2024-09-29 17:13:03 浏览: 32
在C++中,如果你有一个数组(如整数数组),并想找出其中唯一的(distinct)值,你可以使用`std::vector`和标准库算法来存储独特元素并计算其数量。这里有一个简单的示例:
```cpp
#include <iostream>
#include <vector>
#include <unordered_set>
// 假设我们有一个整数数组
int arr[] = {1, 2, 3, 4, 4, 5, 6, 6, 7};
// 使用vector和unordered_set来去除重复
std::vector<int> distinct_values;
std::unordered_set<int> unique_set(arr, arr + sizeof(arr) / sizeof(int));
// 把unique_set的内容复制回vector
for (const auto& val : unique_set)
distinct_values.push_back(val);
// 输出唯一值的数量
std::cout << "Number of distinct values: " << distinct_values.size() << "\n";
// 如果需要,也可以直接打印独特值
std::cout << "Distinct values: ";
for (const auto& val : distinct_values)
std::cout << val << " ";
std::cout << "[^1]\n";
```
这个程序首先创建了一个`std::unordered_set`,它自动去除了重复元素,然后我们将这些唯一元素复制到`std::vector`中。`unordered_set`内部使用哈希表实现了快速查找和无重复特性。
阅读全文