哪位大侠能够帮个忙看下下面的C++程序

来源:百度知道 编辑:UC知道 时间:2024/06/13 23:07:28
#include <iostream>
#include <vector>
#include <cstdlib>
#include <ctime>
#include <algorithm>

using namespace std;

int main()
{
srand(time(0));

int array[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
int asz=sizeof(array)/sizeof(*array);
vector<int> vec(array,array+asz);

time_t currentTime;
currentTime=time(0);
while(currentTime+2 > time(0));//过两秒钟跳出一个数字
int number=vec.size();
int i=rand()%number;
int a=vec[i];
cout<<'\t'<<a<<'\t';

vec.erase(remove(vec.begin(),vec.end(),a));
number=vec.size();
currentTime=time(0);
while(currentTime+2 > time(0));
i=rand()%number;
a=vec[i];
cou

#ifndef __TIME_T
#define __TIME_T
typedef long time_t;
#endif
这是从time.h中摘下来的,可以看到,time_t就是一个长整形,他是用来记录时间的..
当然time(0)返回的是当前系统时间,也是用长整形记录的...
数值就是一个长整数,记录了当前时间

同学表着急,一个一个来:
1、time_t是什么?
time_t其实就是一个整数。VC2005以前是32位,后是64位。它保存着时间。
2、time(0)起什么作用?
其实就是返回系统的当前时间。
3、如何实现两秒的延迟?
关键是这个循环:while(currentTime+2 > time(0));
你看,currentTime实际上保存了记时的开始。time(0)就不断的获取时间。然后当间隔不到2S的时候就继续循环。

time(0)的返回类型就是time_t
4、如何得到我们好理解的时间?
需要两个辅助函数;
void WriteTime()
{
time_t et;
time( &et );
#if _MSC_VER > 1310
tm t = {0};

if( 0 == localtime_s( &t, &et ) ) // 返回0表示成功
{
WriteDateAndTime( &t );
}
#else
WriteDateAndTime( localtime( &et ) );
#endif
}

// 写出
template <>
void basic_logfile<char>::WriteDateAndTime( tm* pTm )
{
if( NULL == pTm )