MFC 对C++拓展 模板库

5 篇文章 0 订阅
2 篇文章 0 订阅

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 的转换




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值