C++類測試運行時間

MyClock.h

#ifndef MY_CLOCK_H
#define MY_CLOCK_H

#include <time.h>

class MyClock
{
private:
	long m_lBegin;
	long m_lEnd;
	double m_dTime;
	static double sm_dTotalTime;//將sm_lTotalTime化爲秒單位
	static long sm_lTotalTime;//用於記錄時鐘次數1次/ms
public:
	MyClock();
	void begin();
	void end();
	double GetHowLong();//得到每次的運行時間
	static double GetTotalTime();//得到總的運行時間
};
#endif

MyClock.cpp

#include "myclock.h"

MyClock::MyClock()
{
	m_lBegin = m_lEnd = 0;
}

void MyClock::begin()
{
	m_lBegin = clock();
}

void MyClock::end()
{
	m_lEnd = clock();
	m_dTime = double(m_lEnd - m_lBegin)/CLOCKS_PER_SEC;
	sm_lTotalTime = sm_lTotalTime + m_lEnd - m_lBegin;
}

double MyClock::GetHowLong()
{
	return m_dTime;
}

//前面不能加static,如果加了就會出現錯誤“static' should not be used on member functions defined at file scope”
double MyClock::GetTotalTime()
{
	return double(sm_lTotalTime)/CLOCKS_PER_SEC;
}
long MyClock::sm_lTotalTime = 0;
double MyClock::sm_dTotalTime = 0;
test.cpp

#include "myclock.h"
#include <iostream>
#include <time.h>
#include <cstdlib>
using namespace std;

int main()
{
    for (int j = 0; j < 2; ++j)
    {
		MyClock myclock;
		myclock.begin();
		long i = 1000000000;
		while (i--)
		{
			;
		}
		myclock.end();
		cout << myclock.GetHowLong() << endl;
    }
	cout << MyClock::GetTotalTime() << endl;
	system("pause");
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章