c++98结构体去重
时间: 2023-10-18 09:04:33 浏览: 100
如果你想在C++98中对结构体进行去重操作,你可以使用`std::set`来实现。`std::set`是一个有序的容器,它会自动去除重复的元素。你可以定义一个自定义的比较函数或者重载结构体的小于运算符来进行结构体的比较。
以下是一个示例代码:
```cpp
#include <iostream>
#include <set>
struct MyStruct {
int value1;
int value2;
// 其他成员变量
bool operator<(const MyStruct& other) const {
// 在这里定义结构体的比较规则
// 这里以value1为例进行比较
return value1 < other.value1;
}
};
int main() {
std::set<MyStruct> mySet;
// 添加结构体到集合中
MyStruct s1 = {1, 2};
MyStruct s2 = {3, 4};
MyStruct s3 = {1, 5}; // 与s1的value1重复
MyStruct s4 = {5, 6};
mySet.insert(s1);
mySet.insert(s2);
mySet.insert(s3);
mySet.insert(s4);
// 输出去重后的结果
for (std::set<MyStruct>::iterator it = mySet.begin(); it != mySet.end(); ++it) {
std::cout << "value1: " << it->value1 << ", value2: " << it->value2 << std::endl;
}
return 0;
}
```
这段代码中,我们定义了一个结构体`MyStruct`,并重载了小于运算符,以`value1`作为比较的依据。然后我们将几个结构体对象插入到`std::set`中,由于`std::set`会自动去重,最后输出的结果只包含不重复的结构体。
阅读全文