C++ 不使用 vector 实现数据去重:按首次出现顺序输出
以下是给出的解决方案:
#include <iostream>
#include <unordered_set>
int main() {
int n;
std::cin >> n;
std::unordered_set<int> uniqueNumbers;
for (int i = 0; i < n; i++) {
int num;
std::cin >> num;
if (uniqueNumbers.find(num) == uniqueNumbers.end()) {
uniqueNumbers.insert(num);
std::cout << num << " ";
}
}
return 0;
}
解释:
- 首先,我们输入一个整数n,表示待处理的数据个数。
- 然后,我们创建一个unordered_set,用于存储首次出现的数据。
- 接下来,我们使用for循环读取n个数据,并对每个数据进行处理。
- 在处理过程中,我们使用unordered_set的find函数来查找当前数据是否已经存在于unordered_set中。
- 如果当前数据不存在于unordered_set中,则将其插入unordered_set,并将其输出。
- 最后,我们返回0,表示程序成功结束。
原文地址: https://www.cveoy.top/t/topic/pK1L 著作权归作者所有。请勿转载和采集!