sách gpt4 ăn đã đi

c++ - 二进制表达式 Person 和 Person 的无效操作数

In lại 作者:太空狗 更新时间:2023-10-29 23:48:59 27 4
mua khóa gpt4 giày nike

我知道以前在类似情况下曾有人问过这个问题,但是我是 C++ 的新手,无法弄清楚需要做什么或为什么必须这样做。基本上,我使用的是我创建的具有变量名称、年龄、高度和体重的 Person 对象。我需要对我创建的 Person 对象运行快速排序并按年龄对它们进行排序。

人类:

class Person{
riêng tư:
string name;
int age, height, weight;
công cộng:
Person(string name = "empty", int age = 0, int height = 0, int weight = 0)
{
this->name = name;
this->age = age;
this->height = height;
this->weight = weight;
};

快速排序方法:

// Quick Sort
void QuickSort(Person *A, int start, int end){
if(start < end){
int p = partition(A, start, end);
QuickSort(A, start, p - 1);
QuickSort(A, p + 1, end);
}
}
int partition(Person *A, int start, int end){
Person pivot = A[end];
int p = start;
for(int i = start; i <= end - 1; i++){
if(A[i] <= pivot){
Person temp = A[i]; A[i] = A[p]; A[p] = temp;
p++;
}
}
Person temp = A[end]; A[end] = A[p]; A[p] = temp;
return p;
}

我收到错误消息“二进制表达式('Person' 和'Person)的操作数无效:

if(A[i] <= pivot)

如有任何帮助,我们将不胜感激,因为我已经尝试了多种方法,并且已经进行了查找,但在这种情况下无法获得其他建议。如果可能的话,我将不胜感激解释为什么我也会收到此错误。谢谢!

câu trả lời hay nhất

C++ 不会自动知道如何对类 Person 执行比较。

如果只想按年龄排序,试试

if(A[i].age <= pivot.age)

如果您想了解如何定义特殊运算符以便“Person <= Person”自动工作,请查看 cppreference.com:http://en.cppreference.com/w/cpp/language/operators

关于c++ - 二进制表达式 Person 和 Person 的无效操作数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48797496/

27 4 0
Đề xuất bài viết: c++ - 为什么 strstr() - char pointer = number?
Đề xuất bài viết: C++ double cast void 指针
Đề xuất bài viết: c++ - 在 C++ 中 for 循环结果 0
Đề xuất bài viết: c++ - 使用#omp 时不匹配 'operator -'
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress