【发布时间】:2013-05-07 18:09:57
【问题描述】:
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。我做错了什么?
【问题讨论】:
-
什么是
Vector?您使用qsort似乎非常错误。 -
您可能想描述“我的 qsort 有一些问题”是什么意思,是否因为无法支付抵押贷款而感到沮丧?使用
std::sort(),因为qsort()使用memcpy()交换对象,这并不总是适用于C++ 对象。 -
试试
all->begin()或(*all).begin()。也就是说,猜测代码、未指定的错误消息(“rezolved”?),仍然不是所有的代码——你不是在帮助别人来帮助你。另一个警告:C 的 qsort() 和 C++ 的 std::sort() 所需的函数不同且不兼容! -
他的意思不是
std::vector。 -
我知道你的意思,但要明确
std::vector也是一个基于模板的类。它恰好随您的编译器一起提供,但没有以任何特定方式进行特殊处理。