举例: CSortStringArray sortArray; sortArray.Add(CString("Zebra\r\n")); sortArray.Add(CString("Bat\r\n")); sortArray.Add(CString("Apple\r\n")); sortArray.Add(CString("Mango\r\n")); sortArray.Sort(); /*************************************************************************/ // CSortStringArray.cpp: implementation of the CSortStringArray class.////////////////////////////////////////////////////////////////////////#include "stdafx.h"#include "CSortStringArray.h" void CSortStringArray::Sort(){ BOOL bNotDone = TRUE; while (bNotDone) { bNotDone = FALSE; for(int pos = 0;pos < GetUpperBound();pos++) bNotDone |= CompareAndSwap(pos); } return;} BOOL CSortStringArray::CompareAndSwap(int pos){ CString temp; int posFirst = pos; int posNext = pos + 1; if (GetAt(posFirst).CompareNoCase(GetAt(posNext)) > 0) { temp = GetAt(posFirst); SetAt(posFirst, GetAt(posNext)); SetAt(posNext, temp); return TRUE; } return FALSE;} /**************************************************************************/ // CSortStringArray.h : header file// #if !defined(AFX_SORTSTRINGARRAY_H_INCLUDED_)#define AFX_SORTSTRINGARRAY_H_INCLUDED_ #if _MSC_VER > 1000#pragma once#endif // _MSC_VER > 1000 /////////////////////////////////////////////////////////////////////////////// CSortStringArray class CSortStringArray : public CStringArray {public: void Sort();private: BOOL CompareAndSwap(int pos);}; #endif // !defined(AFX_SORTSTRINGARRAY_H_INCLUDED_) /***************************************************************************/

评论