AutoTimeStamp类
- classAutoTimeStamp
- {
- public:
- AutoTimeStamp(constchar*pcLog)
- {
- m_fTimeBegin= DxGetCurrentTimeInSec();
- m_pcLog= pcLog;
- }
- ~AutoTimeStamp()
- {
- floatfTime =DxGetCurrentTimeInSec();
- floatfTimeDelta =fTime –m_fTimeBegin;
- charstr[100];
- //if(fTimeDelta > 0.001)
- //{
- sprintf_s(str,“%s:%f”,m_pcLog,fTimeDelta);
- cout<< str<<endl;
- //}
- }
- floatm_fTimeBegin;
- constchar*m_pcLog;
- };
- #define DEFINE_AUTO_TIMESTAMP(x)AutoTimeStampkTimeStamp(x);
用到的获取当前时间的函数
- floatDxGetCurrentTimeInSec()
- {
- staticboolbFirst =true;
- staticLARGE_INTEGERfreq;
- staticLARGE_INTEGERinitial;
- if(bFirst)
- {
- QueryPerformanceFrequency(&freq);
- QueryPerformanceCounter(&initial);
- bFirst= false;
- }
- LARGE_INTEGERcounter;
- QueryPerformanceCounter(&counter);
- return(float)((long double)
- (counter.QuadPart– initial.QuadPart) /
- (longdouble)freq.QuadPart);
- }
使用方法如下:
测试
- voidmain()
- {
- set<int>kSet;
- kSet.insert(1);
- for(inti = 0;i< 10000; ++i)
- {
- kSet.insert(i);
- }
- {
- DEFINE_AUTO_TIMESTAMP(“find10000001 10000times use time:”)
- for(inti = 0;i< 10000; ++i)
- {
- if(kSet.find(10000001)!= kSet.end());
- }
- }
- }