(利用vector 对象去重)利用vector 对象重新实现练习题7.13中的功能。从一个空的vector 对象开 始,使用它的push_back 函数把每个不同的值添加到这个vector 对象中。
时间: 2024-09-26 19:08:14 浏览: 30
7.13、learn Advanced 面向-对象(十二).mp4
在C++中,你可以通过使用`std::vector`和`std::set`来实现在不包含重复元素的情况下存储数据的功能。`std::set`是一个关联容器,它不允许有重复的元素,这正好可以用于去重。首先,你需要创建一个`std::set`来保存唯一值,然后遍历原始的`std::vector`,将每个元素插入到`std::set`中。
以下是实现这个功能的一个示例:
```cpp
#include <iostream>
#include <vector>
#include <set>
// 假设这是你的练习题7.13提供的一个值类型
struct Value {
// ... (假设Value有一个成员或其他属性)
};
int main() {
std::vector<Value> inputVector; // 原始vector
// 填充inputVector... (这里省略了添加元素的部分)
// 创建一个set来保存唯一的值
std::set<Value> uniqueSet;
// 遍历输入vector并去重
for (const auto& value : inputVector) {
// 如果value不在uniqueSet中,就加入
if (!uniqueSet.count(value)) {
uniqueSet.insert(value);
}
}
// 把uniqueSet的内容复制回一个新的vector,以便输出
std::vector<Value> outputVector(uniqueSet.begin(), uniqueSet.end());
// 输出去重后的vector
for (const auto& value : outputVector) {
std::cout << "Unique value: " << value << '\n';
}
return 0;
}
```
在这个例子中,我们通过检查`uniqueSet.count(value)`是否为`false`来判断`value`是否已经存在于集合中。如果不存在,我们就将其插入,并更新`outputVector`。
阅读全文