本文主要介绍了C++ 计算时间差的五种方法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
Qt计算时间的两种方法:
- QTime elapsed() : ms
- QTime currentTime() : ms
C++计算时间的五种方法:
- clock() : ms
- GetTickCount() : ms
- gettimeofday(time_val*, NULL) : us
- QueryPerformanceFrequency(LARGE_INTEGER*) & QueryPerformanceCounter(LARGE_INTEGER*) : us
- time(NULL) : s
#include <QThread>
#include <QTime>
#include <sys/time.h> //clock, gettimeofday, time
#include <windows.h> //Sleep, GetTickCount, timeGetTime, QueryPerformanceCounter
#include <QDebug>
//#pragma comment(lib, "winmm.lib") //timeGetTime, 但是这个库Windows或Qt或VS2015都没有自带
const unsigned long SLEEP_TIME_MILL = 1000;
/**
* QTime的精度为ms级
*/
void calcByQtimeElapsed() {
QTime time;
time.start();
QThread::msleep(SLEEP_TIME_MILL);
int timeElapsed = time.elapsed();
qDebug()<<"QTime.start & QTime.elspsed ="<<timeElapsed<<"ms";
}
/**
* QTime的精度为ms级
*/
void calcByQtimeCurrentTime() {
QTime startTime = QTime::currentTime();
QThread::msleep(SLEEP_TIME_MILL);
QTime stopTime = QTime::currentTime();
int elapsed = startTime.msecsTo(stopTime);
qDebug()<<"QTime.currentTime ="<<elapsed<<"ms";
}
/**
* clock的精度为ms级
*/
void calcByClock() {
clock_t startTime = clock();
Sleep(SLEEP_TIME_MILL);
clock_t endTime = clock();
clock_t elapsed = endTime - startTime;
qDebug()<<"clock ="<<elapsed<<"ms";
}
/**
* GetTickCount的精度为ms级
*/
void calcByTickCount() {
//返回自开机以来经历的毫秒数
DWORD startTime = GetTickCount();
Sleep(SLEEP_TIME_MILL);
DWORD stopTime = GetTickCount();
DWORD elapsed = stopTime - startTime;
qDebug()<<"GetTickCount = "<<elapsed<<"ms";
}
///**
// * timeGetTime的精度为ms级
// * 必须添加Winmm.lib, 否则编译报错undefined reference
// */
//void calcByTimeGetTime() {
// //返回自开机以来经历的毫秒数
// DWORD startTime = timeGetTime();
// Sleep(SLEEP_TIME_MILL);
// DWORD stopTime = timeGetTime();
// DWORD elapsed = stopTime - startTime;
// qDebug()<<"timeGetTime = "<<elapsed<<"ms";
/
沃梦达教程
本文标题为:C++ 计算时间差的五种方法小结


基础教程推荐
猜你喜欢
- C++使用easyX库实现三星环绕效果流程详解 2023-06-26
- C++中的atoi 函数简介 2023-01-05
- C/C++编程中const的使用详解 2023-03-26
- C++详细实现完整图书管理功能 2023-04-04
- C利用语言实现数据结构之队列 2022-11-22
- 详解c# Emit技术 2023-03-25
- 如何C++使用模板特化功能 2023-03-05
- 一文带你了解C++中的字符替换方法 2023-07-20
- C语言 structural body结构体详解用法 2022-12-06
- C语言基础全局变量与局部变量教程详解 2022-12-31