当前位置: 首页 > 图文教程 > 开发语言 > VC++ > 比较数据排序前后的查找次数
比较数据排序前后的查找次数 下载本文源代码 查找(CFind)是一个概念,作用于特定的数据(CData),因为数据有各种不同的特性,有排序了的(CDataSorted),和没有排序过的(CDataChaos),对于不同特性的数据,应该应用不同的查找方法, 对于排序过的数据(CDataSorted),应该使用一种查找方法(CFindBinarySearch), 对于没有排序过的数据(CDataChaos),应该使用另一种查找方法(CFindWorker), 呵呵,所以产生了如下的类图: +----------+ +-------+ + CFind +<>-------------------------->+ CData + +-+------+-+ +---+---+ ^ ^ ^ ^ ^ +--------+------+ ^ ^ ^ ^ +-----------+-+ +-+-----------------+ +-----+-------+ +---+--------+ + CFindWorker + + CFindBinarySearch + + CDataSorted + + CDataChaos + +-------------+ +-------------------+ +-------------+ +------------+这样的话,用户就可以通过派生CData类来加入新的存储格式的数据,通过派生CFind类来加入新的查找方法了, 不过,一般来说,查找方法都是和数据存储方式紧密耦合的,所以,嘿嘿嘿,..., 请注意我的目的呀,我只是为了练习C++才这样写的,哈哈:) 我想一定会有很多人大骂我白痴的吧,哈哈哈哈~~哈哈哈哈,就当耳旁风,不听。:)
class CData{public: CData(); CData(int iNum, int iMax); // generate the data : _v virtual ~CData(){}; CData(const CData& rhs); void get_data(vector& v);protected: vector _v;private: CData& operator=(const CData& rhs); const int _iMin;}; class CDataSorted : public CData{public: CDataSorted(CData rhs); virtual ~CDataSorted(){};private: CDataSorted(); CDataSorted& operator=(const CDataSorted& rhs);}; class CDataChaos : public CData{public: CDataChaos(CData rhs); virtual ~CDataChaos(){};private: CDataChaos(); CDataChaos& operator=(const CDataChaos& rhs);}; class CFind{public: CFind(const CData& data); virtual ~CFind(); virtual bool to_find(int elem, int& num);protected: CData* _pdata;private: CFind& o |