set中的元素为结构体
时间: 2023-11-08 15:02:04 浏览: 118
详解Go中Set的实现方式
是可以的,只要结构体满足以下条件:
1. 结构体中的每个成员都是可比较的,也就是说可以使用比较运算符(如<, >, ==)进行比较;
2. 结构体不能包含指针类型的成员,否则无法保证比较的正确性。
示例代码:
```c++
#include <iostream>
#include <set>
using namespace std;
struct Student {
string name;
int age;
bool operator < (const Student& s) const {
return age < s.age; // 按年龄从小到大排序
}
};
int main() {
set<Student> students;
students.insert({"Alice", 18});
students.insert({"Bob", 20});
students.insert({"Cathy", 19});
for (auto& s : students) {
cout << s.name << " " << s.age << endl;
}
return 0;
}
```
输出结果:
```
Alice 18
Cathy 19
Bob 20
```
阅读全文