qtc++数组的各个值是一个结构体,根据结构体的某个参数大小对数组进行排序
时间: 2025-02-02 20:13:36 浏览: 32
在Qt C++中,如果你有一个包含结构体的数组,并且你想根据结构体中的某个成员变量对数组进行排序,可以使用`std::sort`函数结合自定义的比较函数来实现。以下是一个示例:
假设我们有一个结构体`Person`,其中包含`name`和`age`两个成员变量:
```cpp
#include <QCoreApplication>
#include <QVector>
#include <QDebug>
#include <algorithm>
struct Person {
QString name;
int age;
};
// 自定义比较函数
bool compareByAge(const Person& a, const Person& b) {
return a.age < b.age;
}
int main(int argc, char *argv[]) {
QCoreApplication a(argc, argv);
// 创建一个包含Person结构体的QVector
QVector<Person> people = {
{"Alice", 30},
{"Bob", 25},
{"Charlie", 35}
};
// 使用std::sort进行排序
std::sort(people.begin(), people.end(), compareByAge);
// 打印排序后的结果
for (const auto& person : people) {
qDebug() << person.name << person.age;
}
return a.exec();
}
```
在这个示例中,我们定义了一个`Person`结构体,并创建了一个包含`Person`结构体的`QVector`。然后,我们定义了一个比较函数`compareByAge`,该函数根据`age`成员变量进行比较。最后,我们使用`std::sort`函数对`QVector`进行排序,并打印排序后的结果。
阅读全文
相关推荐

















