根据提示,在右侧编辑器补充c++代码,用户输入一组数据(不超过1000个),删除掉其中的重复数据,输出数组中剩余元素个数(假设为n个),并按照原顺序输出所有数字的首次出现。
时间: 2024-10-27 10:10:42 浏览: 26
```cpp
#include <iostream>
#include <unordered_set>
using namespace std;
int main() {
int n;
cout << "请输入数组长度 (不超过1000): ";
cin >> n;
if (n > 1000) {
cout << "输入的长度超过限制,已截断到1000.\n";
n = min(n, 1000);
}
vector<int> nums(n);
cout << "请输入" << n << "个整数: ";
for (size_t i = 0; i < n; ++i) {
cin >> nums[i];
}
// 使用 unordered_set 删除重复项,并记录每个数字第一次出现的位置
unordered_set<int> unique_nums;
map<int, size_t> first_occurrence;
for (size_t i = 0; i < n; ++i) {
unique_nums.insert(nums[i]);
first_occurrence[nums[i]] = i;
}
// 输出剩余元素个数和首次出现位置
cout << "剩余元素个数 (去除重复后的): " << unique_nums.size() << endl;
cout << "按原顺序输出数字及首次出现位置:\n";
for (const auto &item : unique_nums) {
cout << "数字 " << item << ": 首次出现于索引 " << first_occurrence[item] << "\n";
}
return 0;
}
```
在这个C++程序中,我们首先读取用户提供的整数数组,然后使用`unordered_set`来存储唯一的数字,并通过`map`记录每个数字第一次出现的索引。最后,输出去重后的元素个数以及每个数字的首次出现位置。
阅读全文