若车场内已停满n辆汽车,则后来的汽车只能在门外便道上等候,一旦有车开走,
则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后开入的车
辆必须先退出车场为它让路,该车开出后,其它车辆再按原次序进入车场,每辆停放
在车场的车在它离开时必须按它停留的时间长短交纳费用。
头文件:
#include<iostream>
#include <string>
#include <time.h>
#include <stdlib.h>
#include<unistd.h>
using namespace std;
#define full 1
#define empty 0;
struct tm time()
{
time_t timep;
struct tm *p;
time(&timep);
p = gmtime(&timep);
return *p;
};
struct tm tim()
{
auto p = time();
return p;
}
template<typename T>
class arraylist//动态数组模板
{
public:
arraylist()
{
len = 0;
arraysize = 5;
dp = new T[arraysize];
t = new T[arraysize];//堆上申请数组
t1 = new T[arraysize];
t2 = new T[arraysize];
}
~arraylist()
{
delete[]dp;
delete[]t;
delete[]t1;
delete[]t2;
}
int insert(T dat,T time,T time1,T time2);
int insert(T dat);
void print();
private:
void changesize();
protected:
T * dp;//指针
T * t;
T * t1;
T * t2;
int len;//长度
int arraysize;///容量
};
template<typename T>
int arraylist<T>::insert(T dat,T time,T time1,T time2)
{
if(len == arraysize)//数组元素等于容量,要扩容
{
//changesize();
cout<<"停车场已满"<<endl;
return full;
}
*(dp + len)= dat;
*(t + len)= time;
*(t1 + len)= time1;
*(t2 + len)= time2;
cout<<"车:"<<dat<<"入场"<<endl;
len++;
}
template<typename