关于对CArray的元素进行排序的有关问题
关于对CArray的元素进行排序的问题
用qsort对ImgFileArray中的元素按dir进行排序,
怎么写那个compare函数??
下面的方式不对呀。
------解决方案--------------------
qsort(
ImgFileArray.GetData(),
ImgFileArray.GetSize(),
sizeof(ImgFile*),
(int(*)(const void*,const void*))cmp );
typedef struct tagImgFile
{
char dir[MAX_PATH];
tagImgFile(const char * _dir)
{
memset(dir,0,sizeof(dir));
strcpy(dir,_dir);
}
}ImgFile;
CArray <ImgFile*,ImgFile*> ImgFileArray;
用qsort对ImgFileArray中的元素按dir进行排序,
怎么写那个compare函数??
下面的方式不对呀。
int cmp(const ImgFile ** arg1,const ImgFile ** arg2)
{
return strcmp( (*arg1)->dir, (*arg2)->dir);
}
qsort(
(void*)&ImgFileArray,
ImgFileArray.GetSize(),
sizeof(ImgFile*),
(int(*)(const void*,const void*))cmp );
------解决方案--------------------
qsort(
ImgFileArray.GetData(),
ImgFileArray.GetSize(),
sizeof(ImgFile*),
(int(*)(const void*,const void*))cmp );