请问怎么用qsort对结构进行排序呢?
结构是这样的:struct a
{
int n;
bool k;
} b[10];
想按n的大小对b[10]进行排序,请问可以用qsort么?
如果可以,qsort 和其中的cmp函数应该怎么写呢?谢谢!
/*---------------------------------------------------------------------------
File name: qsort_struct.cpp
Author: HJin (email: fish_sea_bird [at] yahoo [dot] com )
Created on: 9/28/2007 12:46:18
Environment: WinXPSP2 En Pro + VS2005 v8.0.50727.762
Problem statement:
---------------------------------------------------------------------------
请问怎么用qsort对结构进行排序呢?
结构是这样的:
struct a
{
int n;
bool k;
} b[10];
想按n的大小对b[10]进行排序,请问可以用qsort么?
如果可以,qsort 和其中的cmp函数应该怎么写呢?谢谢!
*/
#include <iostream>
#include <cstdlib>
using namespace std;
struct a
{
int n;
bool k;
} b[10];
int cmp(const void* x, const void* y)
{
return ((a*)x)->n - ((a*)y)->n;
}
int main()
{
qsort((void*)b, 10, sizeof(a), cmp);
return 0;
}