0
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. 我做错了什么?

4

1 回答 1

1

qsort不需要Vector<T>*. 它需要一个指向向量第一个元素的指针。

getNrMed不是 的方法Vector<T>,它MedRepository是此片段中其他地方看不到的方法。

你需要打石膏的事实compareNA是一个严重问题的迹象。强制转换函数指针几乎是不安全的。你需要让它在没有强制转换的情况下编译。

毫无疑问,考虑到这里的代码质量,还有其他问题——这正是在您提供的代码数量有限的情况下可以诊断出的问题。

于 2013-05-07T18:27:48.563 回答