StopWatch.h
#ifndef STOPWATCH_H
#define STOPWATCH_H
#include <iostream>
#include <vector>
#include <ctime>
class StopWatch
{
public:
StopWatch();
//StopWatch(int m_startTime,int m_endTime);
~StopWatch();
//set函数
void start();//启动计时器
void stop();//停止计时器
//get函数
double getElapseTime() const;//获取流逝时间
//工具函数
void selectionSort(std::vector<int>& arr);//选择排序
private:
time_t startTime;
time_t endTime;
};
#endif // STOPWATCH_H
StopWatch.cpp
#include "StopWatch.h"
#include <iostream>
#include <vector>
#include <ctime>
#include <cstdlib>
using namespace std;
/*StopWatch::StopWatch()
{
time_t now = time(nullptr);
tm *ltm = localtime(&now);
}*/
StopWatch::StopWatch():startTime(0),endTime(0)
{
}
StopWatch::~StopWatch()
{
}
/**************************************/
void StopWatch::start()
{
startTime=time(nullptr);
}
void StopWatch::stop()
{
endTime=time(nullptr);
}
/*************************************/
/*time_t StopWatch::getStartTime() const
{
return startTime;
}
time_t StopWatch::getEndTime() const
{
return endTime;
}*/
double StopWatch::getElapseTime() const
{
if(startTime==0||endTime==0)
{
cout << "非法输入" << endl;
return 0.0;
}
else
{
return difftime(endTime,startTime);
}
}
void StopWatch::selectionSort(std::vector<int>& arr)
{
int n=arr.size();
for(int i=0;i<n-1;i++)
{
int Min=i;
for(int j=i+1;j<n;j++)
{
if(arr[j]<arr[Min])
{
Min=j;
}
}
std::swap(arr[i],arr[Min]);
}
}
main.cpp
#include "StopWatch.h"
#include <iostream>
#include <cstdlib>
#include <algorithm>
#include <ctime>
using namespace std;
int main()
{
const int SIZE=100000;
std::vector<int> arr(SIZE);
srand(time(nullptr));
for(int i=0;i<SIZE;i++)
{
arr[i]=rand();
}
StopWatch sw;
sw.start();
sw.selectionSort(arr);
sw.stop();
cout << "Elapsed time: " << sw.getElapseTime() << " seconds" << endl;
//sw.getElapseTime()
return 0;
}