在c++中完成:给定含有n个整数的序列,要求对这个序列进行去重操作。所谓去重,是指对这个序列中每个重复出现的数,只保留该数第一次出现的位置,删除其余位置。
时间: 2025-02-02 15:13:01 浏览: 59
在C++中,可以通过使用`std::unordered_set`来高效地完成序列去重操作。以下是一个示例代码,展示了如何对含有n个整数的序列进行去重:
```cpp
#include <iostream>
#include <vector>
#include <unordered_set>
std::vector<int> removeDuplicates(const std::vector<int>& sequence) {
std::unordered_set<int> seen;
std::vector<int> result;
for (const auto& num : sequence) {
if (seen.find(num) == seen.end()) {
seen.insert(num);
result.push_back(num);
}
}
return result;
}
int main() {
std::vector<int> sequence = {1, 2, 2, 3, 4, 4, 5};
std::vector<int> uniqueSequence = removeDuplicates(sequence);
std::cout << "去重后的序列: ";
for (const auto& num : uniqueSequence) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
```
### 代码解释:
1. **包含头文件**:我们需要包含`<iostream>`用于输入输出,`<vector>`用于存储序列,`<unordered_set>`用于快速查找和存储已见过的数。
2. **定义函数`removeDuplicates`**:该函数接受一个整型向量`sequence`作为输入,并返回一个去重后的向量。
3. **使用`std::unordered_set`存储已见过的数**:`std::unordered_set`提供了平均常数时间复杂度的查找操作。
4. **遍历输入序列**:对于序列中的每个数,如果该数不在`seen`集合中,则将其插入`seen`集合并添加到结果向量`result`中。
5. **主函数`main`**:定义一个整数序列,调用`removeDuplicates`函数,并输出去重后的序列。
阅读全文
相关推荐

















