结构体vector排序
时间: 2024-09-09 08:15:02 浏览: 53
结构体vector在C++中可以按照元素值进行排序,通常需要配合`sort()`函数或者STL库中的算法。如果你有一个包含自定义结构体的`std::vector`实例,你可以通过提供一个比较函数(`compare()`)来指定排序规则。例如:
```cpp
#include <algorithm>
#include <vector>
// 假设我们有一个名为Person的结构体,有姓名和年龄字段
struct Person {
std::string name;
int age;
};
// 定义一个比较函数,根据age进行升序排序
bool compareByAge(const Person& a, const Person& b) {
return a.age < b.age;
}
int main() {
std::vector<Person> people = { {"Alice", 25}, {"Bob", 20}, {"Charlie", 30} };
// 使用sort()并传入我们的比较函数
std::sort(people.begin(), people.end(), compareByAge);
for (const auto& person : people) {
std::cout << person.name << " (" << person.age << ")\n";
}
return 0;
}
```
在这个例子中,`people`会按照年龄从小到大排序。
阅读全文