C++ 对记录数组(Struct)进行快速排序

C++ 对记录数组(Struct)进行快速排序,c++,c,C++,C,我是C编程新手,正在尝试对一系列记录进行快速排序。我不确定是否正确地将记录发送到函数,但我的错误是 错误:请求从“TaxRecord*”转换为非标量类型“TaxRecord” 错误:与您声明的“运算符不匹配 void qsort(TaxRecord table,int start,int finish); 但实施 void qsort(TaxRecord table[],int start,int finish); 此外,如果TaxRecord是一个类/结构,那么您必须定义1)您的函数原型与

我是C编程新手,正在尝试对一系列记录进行快速排序。我不确定是否正确地将记录发送到函数,但我的错误是

错误:请求从“TaxRecord*”转换为非标量类型“TaxRecord”
错误:与您声明的“运算符不匹配

void qsort(TaxRecord table,int start,int finish);
但实施

void qsort(TaxRecord table[],int start,int finish);
此外,如果TaxRecord是一个类/结构,那么您必须定义
1)您的函数原型与函数声明不匹配

void qsort(TaxRecord table,int start,int finish);
void qsort(TaxRecord table[],int start,int finish)
2) 您可以使用一个数组元素而不是数组本身来调用函数

qsort(theEmployees[i],0,i);
3) 您尝试将数组分配给单个
TaxRecord
变量

TaxRecord temp = table;
4) 在交换
TaxRecord
元素时,尝试使用
int
临时值

int temp = table[left];
table[left] = table[right];
table[right] = temp;

5) 错误消息听起来好像没有定义的
运算符标准库实现出了什么问题?声明了
void qsort(TaxRecord table,int start,int finish);
但实现了
void qsort(TaxRecord table[],int start,int finish)另外,如果税目记录是一个类/结构,那么你必须定义<操作符来使用它。如果它是一个类,那么我也建议你不要一直复制它,而是使用引用或Posits。C++解决方案是定义<操作符,只使用向量和STD::排序……@ PeterT:那就是确实是错误消息讨论的问题。回答这个问题。你不知道2)事实上,它可能是一个
TaxRecord**
,但你可能是对的。@皮特,这是我的一个假设,但变量
i
是正确的
员工
下标和
TaxRecord
数组的大小是正确的非常可疑。@Blastfull-非常感谢!!!你指出了我的一些新手错误,并且让我的大脑在正确的位置找到了更多!TaxRecord是一组记录,即typedef struct TaxRecord{…}
TaxRecord temp = table;
int temp = table[left];
table[left] = table[right];
table[right] = temp;