结构体重载小于号sort
时间: 2023-08-19 16:08:54 浏览: 134
当我们想对自定义的结构体类型进行排序时,可以通过重载小于运算符(<)来实现。下面是一个示例代码:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
struct MyStruct {
int value;
// 重载小于号运算符
bool operator<(const MyStruct& other) const {
return value < other.value;
}
};
int main() {
std::vector<MyStruct> vec;
// 添加一些结构体对象
vec.push_back({3});
vec.push_back({1});
vec.push_back({2});
// 使用sort函数进行排序
std::sort(vec.begin(), vec.end());
// 打印排序后的结果
for (const auto& obj : vec) {
std::cout << obj.value << " ";
}
std::cout << std::endl;
return 0;
}
```
在上面的代码中,我们定义了一个名为`MyStruct`的结构体,并在其中重载了小于号运算符。在`main`函数中,我们创建了一个存储`MyStruct`对象的向量`vec`,并向其添加了几个对象。然后,我们使用`std::sort`函数对向量进行排序,并使用循环打印排序后的结果。
请注意,重载小于号运算符的函数必须是`const`成员函数,以确保不修改对象的状态。
阅读全文