2: 类的写法规范化
This commit is contained in:
parent
1059058706
commit
c8cc19778e
1 changed files with 121 additions and 94 deletions
215
ex2.cpp
215
ex2.cpp
|
@ -28,112 +28,139 @@ class Vec
|
|||
swap(i,rand()%10);
|
||||
}
|
||||
|
||||
int get(int a)
|
||||
{
|
||||
return v[a];
|
||||
}
|
||||
int get(int a);
|
||||
|
||||
void put(int a,int value)
|
||||
{
|
||||
v[a]=value;
|
||||
}
|
||||
void put(int a,int value);
|
||||
|
||||
void swap(int a, int b)
|
||||
{
|
||||
int temp = v[a];
|
||||
v[a] = v[b];
|
||||
v[b] = temp;
|
||||
}
|
||||
void swap(int a, int b);
|
||||
|
||||
void expand()
|
||||
{
|
||||
LEN=LEN*2;
|
||||
int *p=new int[LEN];
|
||||
void expand();
|
||||
|
||||
for(int i=0;i<=USED;i++)
|
||||
p[i]=v[i];
|
||||
void shrink();
|
||||
|
||||
delete[] v;
|
||||
v=p;
|
||||
}
|
||||
int insert(int locate,int value);
|
||||
|
||||
void shrink()
|
||||
{
|
||||
LEN=LEN>>1;
|
||||
int *p=new int[LEN];
|
||||
int del(int locate,int value);
|
||||
|
||||
for(int i=0;i<=USED;i++)
|
||||
p[i]=v[i];
|
||||
int find(int value);
|
||||
|
||||
delete[] v;
|
||||
v=p;
|
||||
}
|
||||
void printall();
|
||||
|
||||
int insert(int locate,int value)
|
||||
{
|
||||
if(locate<0||locate>USED)
|
||||
return 1;
|
||||
int getlen();
|
||||
|
||||
USED++;
|
||||
if(USED>=LEN)
|
||||
expand();
|
||||
|
||||
for(int i=USED;i>locate;i--)
|
||||
v[i]=v[i-1];
|
||||
|
||||
v[locate]=value;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int del(int locate,int value)
|
||||
{
|
||||
|
||||
if(locate<0||((USED-value)<0)||((locate+value-1)>USED))
|
||||
return 1;
|
||||
|
||||
USED=USED-value;
|
||||
|
||||
for(int i=locate;i<=USED;i++)
|
||||
v[i]=v[i+value];
|
||||
|
||||
if( ( (double)USED/(double)LEN )<=0.3 )
|
||||
shrink();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int find(int value)
|
||||
{
|
||||
int i = 0;
|
||||
for(i;i<=USED;i++)
|
||||
{
|
||||
if(v[i]==value)
|
||||
{
|
||||
return i;
|
||||
}
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
void printall()
|
||||
{
|
||||
for(int i=0;i<USED;i++)
|
||||
printf("%d\n",v[i]);
|
||||
}
|
||||
|
||||
int getlen()
|
||||
{
|
||||
return LEN;
|
||||
}
|
||||
|
||||
int getused()
|
||||
{
|
||||
return USED;
|
||||
}
|
||||
int getused();
|
||||
};
|
||||
|
||||
int Vec::get(int a)
|
||||
{
|
||||
return v[a];
|
||||
}
|
||||
|
||||
void Vec::put(int a,int value)
|
||||
{
|
||||
v[a]=value;
|
||||
}
|
||||
|
||||
void Vec::swap(int a, int b)
|
||||
{
|
||||
int temp = v[a];
|
||||
v[a] = v[b];
|
||||
v[b] = temp;
|
||||
}
|
||||
|
||||
void Vec::expand()
|
||||
{
|
||||
LEN=LEN*2;
|
||||
int *p=new int[LEN];
|
||||
|
||||
for(int i=0;i<=USED;i++)
|
||||
p[i]=v[i];
|
||||
|
||||
delete[] v;
|
||||
v=p;
|
||||
}
|
||||
|
||||
void Vec::shrink()
|
||||
{
|
||||
LEN=LEN>>1;
|
||||
int *p=new int[LEN];
|
||||
|
||||
for(int i=0;i<=USED;i++)
|
||||
p[i]=v[i];
|
||||
|
||||
delete[] v;
|
||||
v=p;
|
||||
}
|
||||
|
||||
int Vec::insert(int locate,int value)
|
||||
{
|
||||
if(locate<0||locate>USED)
|
||||
return 1;
|
||||
|
||||
USED++;
|
||||
|
||||
if(USED>=LEN)
|
||||
expand();
|
||||
|
||||
for(int i=USED;i>locate;i--)
|
||||
v[i]=v[i-1];
|
||||
|
||||
v[locate]=value;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int Vec::del(int locate,int value)
|
||||
{
|
||||
|
||||
if(locate<0||((USED-value)<0)||((locate+value-1)>USED))
|
||||
return 1;
|
||||
|
||||
USED=USED-value;
|
||||
|
||||
for(int i=locate;i<=USED;i++)
|
||||
v[i]=v[i+value];
|
||||
|
||||
if( ( (double)USED/(double)LEN )<=0.3 )
|
||||
shrink();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int Vec::find(int value)
|
||||
{
|
||||
int i = 0;
|
||||
for(i;i<=USED;i++)
|
||||
{
|
||||
if(v[i]==value)
|
||||
{
|
||||
return i;
|
||||
}
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
int Vec::getlen()
|
||||
{
|
||||
return LEN;
|
||||
}
|
||||
|
||||
int Vec::getused()
|
||||
{
|
||||
return USED;
|
||||
}
|
||||
|
||||
void Vec::printall()
|
||||
{
|
||||
for(int i=0;i<USED;i++)
|
||||
printf("%d\n",v[i]);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
int main()
|
||||
{
|
||||
srand(time(NULL));
|
||||
|
|
Reference in a new issue