Vector<Medicine*>* Controller::sortByStockAsc(){
Vector<Medicine*>* all =repo->getAll();
qsort(all, all->getNrMed(),sizeof(Medicine*), (comparefunction) compareNA);
return all;}
我有上面的代码,但我的 qsort 有一些问题。 Vector<Medicine*>*
是指向我需要整理的指针数组的指针。 getAll()
返回 Vector <Medicine*>*
.
问题之一是在 qsort()
我的getNrMed()
尽管我指定了定义此函数的模块,但未找到。该函数如下所示:
int MedRepository::getNrMed(){
return MedList->getSize();
}
并返回 int
.我做错了什么?
最佳答案
qsort
不需要 Vector<T>*
.它采用指向 vector 第一个元素的指针。
getNrMed
不是 Vector<T>
的方法, 它是 MedRepository
的方法在此代码段的其他任何地方都看不到。
您需要对 compareNA
进行强制转换这一事实是严重问题的征兆。转换函数指针几乎从不是安全的。您需要使其在不进行强制转换的情况下进行编译。
毫无疑问,鉴于这里的代码质量,还有其他问题——鉴于您提供的代码数量有限,这正是可以诊断的问题。
关于c++ - C++中的Qsort困境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16425758/