MFC 對C++拓展 模板庫

CArray

C++並不支持動態數組,MFC提供了一個CArray類來實現動態數組的功能。有效的使用CArray類,可以提高程序的效率。MFC提供了一套模板庫,來實現一些比較藏劍的數據結構結構,如Array,List,Map。CArry就是其中的一個,用來實現動態數組的功能。

引用傳遞,對於CArray的效率更高些,節省內存的同時,也加快了程序運行速度。第二個參數用CPoint&。

MFC的數組類支持的數組類似於常規數組,可以存放任何數據類型。常規數組在使用前必須將其定義成能夠容納所有可能需要的元素,即先確定大小,而MFC數組類創建的對象可以根據需要動態地增大或減小,數組的起始下標是0,而上限可以是固定的,也可以隨着元素的增加而增加,數組在內存中的地址仍然是連續分配的。

MFC定義了數組模板類CArray,並針對各種常用變量類型定義了CByteArray,CArray,CUIntArray,CDArray,CStringArray,CObArray,CPtrArray。

CArray ---  Afxtempl.h

CByteArray --- Afxcoll.h

CArray --- Afxcoll.h

CDArray --- Afxcoll.h

CUIntArray --- Afxcoll.h

CStringArray --- Afxcoll.h

CPtrArray --- Afxcoll.h


CArray使用說明:

(1).在使用一個數組之前,使用SetSize建立它的大小和爲它分配內存。如果不使用SetSize,則爲數組添加元素就會引起頻繁地重新分配和拷貝。頻繁地重新分配和拷貝,不但沒有效率,反而會導致內存碎片。


CTime

CTime 分函數和類兩個功能。

CTime 功能是把日期和時間轉換爲字符串,而CTime類的對象表示的時間是基於格林威治標準時間(GMT)。

(1) 函數:ctime

功能:把日期和時間轉換爲字符串

函數原型:char* ctime(const time_t *time);

NOTE: 若在linux下使用本函數,需要頭文件<time.h>,在VC6.0下添加頭文件<ctime>。

(2) CTime類

CTime沒有基類。一個CTime對象代表一個絕對的時間和日期。CTime類引入了ANSI time_t數據類型以及其相關的運行時函數,其中包括向一個Gregorian日期和24小時時間轉換功能。

CTime類的對象表示的基於世界標準時間(UCT),它是基於格林威治(Greenwich)時間(GMT)的。CTimeSpan類的對象表示的是時間間隔。CTime和CTimeSpan類都是不可派生的。因爲沒有虛函數,CTime和CTimeSpan對象的大小都正好是四個字節。多數成員函數都是內聯函數實現。

CTime類一般不會被繼承使用。其對象的大小是8個字節。

CTime表示的日期上限是2038年1月18日,下限是1970年1月1日 12:00:00 AM GMT。

//#include 
#include 
#include 
int main(int argc, char* argv[])
{
	/*
	測試一:*/
	// example for CTime::GetCurrentTime
	/************************************************************************/
	/* 
		下面實現的功能是秒錶,並和時間進行對應
	*/
	/************************************************************************/
	int i = 100;
	while(i--){
		CTime time = CTime::GetCurrentTime();
		CString strTime = time.Format ("%S");//%Y-%m-%d %H:%M:%S 年月日 時分秒
		cout << strTime << endl;
		Sleep(1000);//睡眠一秒
	}
	
	/*
	測試二  注意頭文件切換
	這個時間測試問題,需要對C++和C語言的標準庫進行分辨,即只需要添加這兩個頭文件即可。
	#include 
	#include 
	
	time_t t;
	t=time(&t);
	cout << "Today's date and time: "<< ctime(&t);
	*/
	return 0;
}
NOTE:上例子C++中, CTime -> CString 的轉換




發佈了42 篇原創文章 · 獲贊 1 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章