流逝时间(待提升版)

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;

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值