正文

排序CStringArray类[网络资料收集]2007-01-07 22:42:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/programming/22338.html

分享到:

举例:
    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_)

/***************************************************************************/

阅读(3351) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册