关于qsort对CArry的排序的问题

yue_tq 2012-11-29 11:22:07
小弟现有一个由结构体组成的动态数组,现要对其进行排序,如何进行?
	typedef struct FileName
{
CString filenames;
int nfilename;
}FileName;
typedef CArray<FileName,FileName&> m_arrfilenames;
m_arrfilenames m_filename;



void qsort( void *base, size_t num, size_t width, int (__cdecl *compare )(const void *elem1, const void *elem2 ) );

就是这里的返回值应该怎么写?
int Comparison(const void *a, const void *b)
{
return ;
}

求赐教
...全文
163 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yue_tq 2012-11-30
  • 打赏
  • 举报
回复
就这样吧。
yue_tq 2012-11-29
  • 打赏
  • 举报
回复
是按照里面的int型的数据进行从小到大的排序,而且2L的FileName不认啊
Eleven 2012-11-29
  • 打赏
  • 举报
回复
Compare function return value Description < 0 elem1 less than elem2 0 elem1 equivalent to elem2 > 0 elem1 greater than elem2
Eleven 2012-11-29
  • 打赏
  • 举报
回复
要看你怎么排序了?
sg_knight 2012-11-29
  • 打赏
  • 举报
回复
关键看你怎么排序了。比如比较字符串

int Comparison(const void *a, const void *b)
{
   FileName *f1 = (FileName*)a;
   FileName *f2 = (FileName*)b;

   if(f1.filenames > f2.filenames)
      return 1;
   else
      return 0;
}
yue_tq 2012-11-29
  • 打赏
  • 举报
回复
问题补充:动态数组在一个nfile的类里面
I_ask_who 2012-11-29
  • 打赏
  • 举报
回复
std::sort()也是quick sort, lz可以考虑用std::vector代替CArray,然后重载operator <
Tiger-3D 2012-11-29
  • 打赏
  • 举报
回复
排序的话总得有个排序的标准,比如说,按字母顺序,按结构体大小

19,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧