从数组中获取存在的数字,放到新数组,新数组中数字不重复,记录数字出现次数,给出c++示例
时间: 2023-10-24 11:07:43 浏览: 71
以下是示例代码:
```c++
#include <iostream>
#include <vector>
#include <unordered_map>
using namespace std;
vector<int> getDistinctNumbers(vector<int>& nums) {
vector<int> res;
unordered_map<int, int> countMap;
for (int num : nums) {
if (countMap.find(num) == countMap.end()) {
res.push_back(num);
countMap[num] = 1;
} else {
countMap[num]++;
}
}
return res;
}
int main() {
vector<int> nums = {1, 2, 3, 2, 4, 1, 5, 6, 5};
vector<int> distinctNums = getDistinctNumbers(nums);
for (int num : distinctNums) {
cout << num << " appears " << countMap[num] << " times" << endl;
}
return 0;
}
```
该示例代码中,我们使用了一个 `unordered_map` 来记录每个数字出现的次数,并使用 `vector` 来存储不重复的数字。`getDistinctNumbers` 函数返回一个 `vector`,其中存储了不重复的数字。在 `main` 函数中,我们遍历 `distinctNums`,并输出每个数字出现的次数。
阅读全文