May 13, 2003 #1 Premalm Programmer Mar 20, 2002 164 US Hey guys, Can qsort in vc++ be used to sort an array of structures. Thanks Premal
May 13, 2003 Thread starter #3 Premalm Programmer Mar 20, 2002 164 US I have a struct struct CFGStruct { CString RecPtr; CString ParcelString; CString AmountString; } ParcelArray[50000]; How do I define qsort for this structure ? My key is ParcelString. Thanks Premal Upvote 0 Downvote
I have a struct struct CFGStruct { CString RecPtr; CString ParcelString; CString AmountString; } ParcelArray[50000]; How do I define qsort for this structure ? My key is ParcelString. Thanks Premal
May 13, 2003 #4 doctorA Programmer Mar 25, 2003 3 UA int compare(const void *elem1, const void *elem2 ) ) { if( ((CFGStruct*)elem1)->ParcelString > ((CFGStruct*)elem2)->ParcelString ){ return 1; } else if( ((CFGStruct*)elem1)->ParcelString > ((CFGStruct*) elem2)->ParcelString ){ return -1; } else{ return 0; } } .... qsort(ParcelArray,50000,sizeof(*ParcelArray), compare); p.s. 50000 bad idea use int const nArraySize = 50000; best regards, alex, http://www.brigsoft.com/edu Upvote 0 Downvote
int compare(const void *elem1, const void *elem2 ) ) { if( ((CFGStruct*)elem1)->ParcelString > ((CFGStruct*)elem2)->ParcelString ){ return 1; } else if( ((CFGStruct*)elem1)->ParcelString > ((CFGStruct*) elem2)->ParcelString ){ return -1; } else{ return 0; } } .... qsort(ParcelArray,50000,sizeof(*ParcelArray), compare); p.s. 50000 bad idea use int const nArraySize = 50000; best regards, alex, http://www.brigsoft.com/edu
May 13, 2003 #5 PerFnurt Programmer Feb 25, 2003 972 SE ...or, since we're talking about CString, simply: int compare(const void *elem1, const void *elem2 ) ) { CFGStruct* struct1 = (CFGStruct*)elem1; CFGStruct* struct2 = (CFGStruct*)elem2; return struct1->ParcelString.Compare(struct2->ParcelString); } . . . Upvote 0 Downvote
...or, since we're talking about CString, simply: int compare(const void *elem1, const void *elem2 ) ) { CFGStruct* struct1 = (CFGStruct*)elem1; CFGStruct* struct2 = (CFGStruct*)elem2; return struct1->ParcelString.Compare(struct2->ParcelString); } . . .