c++如何测试程序运行时间

c++如何测试程序运行时间,第1张

Include head file time.h, though it's a C include file, C++ certainly can use it.

Under C++, you can include <ctime>instead of <time.h>

_____________________________________________________

time.h

@函数名称: localtime

函数原型: struct tm *localtime(const time_t *timer)

函数功能: 返回一个以tm结构表达的机器时间信息

函数返回: 以tm结构表达的时间,结构tm定义如下:

struct tm{

int tm_sec

int tm_min

int tm_hour

int tm_mday

int tm_mon

int tm_year

int tm_wday

int tm_yday

int tm_isdst

}

参数说明: timer-使用time()函数获得的机器时间

所属文件: <time.h>

#include <time.h>

#include <stdio.h>

#include <dos.h>

int main()

{

time_t timer

struct tm *tblock

timer=time(NULL)

tblock=localtime(&timer)

printf("Local time is: %s",asctime(tblock))

return 0

}

@函数名称: asctime

函数原型: char* asctime(struct tm * ptr)

函数功能: 得到机器时间(日期时间转换为ASCII码)

函数返回: 返回的时间字符串格式为:星期,月,日,小时:分:秒,年

参数说明: 结构指针ptr应通过函数localtime()和gmtime()得到

所属文件: <time.h>

#include <stdio.h>

#include <string.h>

#include <time.h>

int main()

{

struct tm t

char str[80]

t.tm_sec=1

t.tm_min=3

t.tm_hour=7

t.tm_mday=22

t.tm_mon=11

t.tm_year=56

t.tm_wday=4

t.tm_yday=0

t.tm_isdst=0

strcpy(str,asctime(&t))

printf("%s",str)

return 0

}

@函数名称: ctime

函数原型: char *ctime(long time)

函数功能: 得到日历时间

函数返回: 返回字符串格式:星期,月,日,小时:分:秒,年

参数说明: time-该参数应由函数time获得

所属文件: <time.h>

#include <stdio.h>

#include <time.h>

int main()

{

time_t t

time(&t)

printf("Today's date and time: %s",ctime(&t))

return 0

}

@函数名称: difftime

函数原型: double difftime(time_t time2, time_t time1)

函数功能: 得到两次机器时间差,单位为秒

函数返回: 时间差,单位为秒

参数说明: time1-机器时间一,time2-机器时间二.该参数应使用time函数获得

所属文件: <time.h>

#include <time.h>

#include <stdio.h>

#include <dos.h>

#include <conio.h>

int main()

{

time_t first, second

clrscr()

first=time(NULL)

delay(2000)

second=time(NULL)

printf("The difference is: %f seconds",difftime(second,first))

getch()

return 0

}

@函数名称: gmtime

函数原型: struct tm *gmtime(time_t *time)

函数功能: 得到以结构tm表示的时间信息

函数返回: 以结构tm表示的时间信息指针

参数说明: time-用函数time()得到的时间信息

所属文件: <time.h>

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

#include <dos.h>

char *tzstr="TZ=PST8PDT"

int main()

{

time_t t

struct tm *gmt, *area

putenv(tzstr)

tzset()

t=time(NULL)

area=localtime(&t)

printf("Local time is:%s", asctime(area))

gmt=gmtime(&t)

printf("GMT is:%s", asctime(gmt))

return 0

}

@函数名称: time

函数原型: time_t time(time_t *timer)

函数功能: 得到机器的日历时间或者设置日历时间

函数返回: 机器日历时间

参数说明: timer=NULL时得到机器日历时间,timer=时间数值时,用于设置日历时间,time_t是一个long类型

所属文件: <time.h>

#include <time.h>

#include <stdio.h>

#include <dos.h>

int main()

{

time_t t

t=time()

printf("The number of seconds since January 1,1970 is %ld",t)

return 0

}

@函数名称: tzset

函数原型: void tzset(void)

函数功能: UNIX兼容函数,用于得到时区,在DOS环境下无用途

函数返回:

参数说明:

所属文件: <time.h>

#include <time.h>

#include <stdlib.h>

#include <stdio.h>

int main()

{

time_t td

putenv("TZ=PST8PDT")

tzset()

time(&td)

printf("Current time=%s",asctime(localtime(&td)))

return 0

}

这是要做OJ吗……以下用Linux角度考虑。

1.第一步和第二步有何不同?

2.首先编译工作可以用system调用make脚本。一般限定只有一个代码文件,所以makefile是固定的,产生的可执行文件也是固定的。通过限定makefile,可以限制编译时对系统库和网络库的调用。

3.用>和<在调用可执行文件时实现输入输出重定向。输出的文件名和标准输出结果都是预定的。

4.将实际输出文件和标准输出文件进行比较。采用类似Special Judge的方式,专门设计一个程序同时读入两个输出文件,逐行比较。

5.为了实现定时功能,可以用子线程方式运行程序,主线程负责检测时间。时间到了看看子线程有没有返回,就知道是否TLE。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8168251.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-14
下一篇2023-04-14

发表评论

登录后才能评论

评论列表(0条)

    保存