📄 xsortbase.h
字号:
//////////////////////////////////////////////////////////////////////
// 版权所有(C) 1994-2004 //
// 工程名称: TestBed
// 文件名: XSortBase.h
// 声明类: CXSortBase,CXSortBaseT<TYPE>
// 说明: 排序基类
// //
// 创建日期: 2004.8.8
// 创建人: 邓辉
// 修改记录 //
// 修改日期 修改人 说明 //
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_XSORTBASE_H__AB85B3DB_2E36_439B_BC23_15A18895577E__INCLUDED_)
#define AFX_XSORTBASE_H__AB85B3DB_2E36_439B_BC23_15A18895577E__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#define XTEST
enum XTESTMODE
{
TESTALL=0, //统计时间,赋值,比较次数
TESTTIME, //仅统计时间
TESTNONE //不做统计测试
};
class CXSortBase
{
public:
CXSortBase();
virtual ~CXSortBase();
virtual void Reset();
//设置测试模式
void SetTestMode(int nTestMode) {m_nTestMode = nTestMode;}
//获取测试信息
CString GetTestInfo();
double GetTime() {return m_dTime;}
double GetCompare() {return m_dCompare;}
double GetEvaluate() {return m_dEvaluate;}
private:
CXSortBase(const CXSortBase& rhs);
CXSortBase& operator= (const CXSortBase& rhs);
protected:
double m_dCompare;
double m_dTime;
double m_dEvaluate;
int m_nTestMode;
};
template <class Type>
class CXSortBaseT: public CXSortBase
{
public:
CXSortBaseT(){Reset();};
virtual ~CXSortBaseT(){};
//排序
virtual void Sort(Type* pArray, int nArray, BOOL bDesc=TRUE)=0;
//比较函数 可用于扩展
virtual int Compare(Type lhs, Type rhs){return 0;}
private:
CXSortBaseT(const CXSortBaseT& rhs);
CXSortBaseT& operator= (const CXSortBaseT& rhs);
protected:
};
#endif // !defined(AFX_XSORTBASE_H__AB85B3DB_2E36_439B_BC23_15A18895577E__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -