数组名 是干嘛的?
template <typename T>
class CMyArray
{
public:
CMyArray(){
size = 0;
comp = 10;
data = new T[comp];
}
CMyArray(T* temp,int sizeTemp){
size = 0;
comp = sizeTemp;
data = new T[comp];
for(int i = 0;i < sizeTemp;++i)
{
data[i] = temp[i];
size++;
}
}
~CMyArray(){ delete []data;}
bool deleteit(int pos)//删除某一位置
{
if(pos >= size)
return false;
for(int i = pos;i < size - 1;++i)
{
data[i] = data[i+1];
}
size--;
return true;
}
void deletesame()
{
for(int i = 1; i< size;)//遍历数组。
{
bool del = true;
for(int j = 0;j < i;++j)//查找前面是否有相同值
{
if(data[j] == data[i])//如果有
{
bool re = deleteit(i);//删除这个位置值
if(re)//如果成功删除,修改标记
del = false;
}
}
if(del)//标记没有变化,说明没找到,继续往后找,++i; 有变化,不用++i;
++i;
}
}
void show()
{
for(int i = 0;i < size;++i)
cout<<data[i]<<endl;
}
private:
int size; //当前长度
int comp;//容量
T* data;
};
int main()
{
int b[16] = {1,2,2,2,3,4,5,5,5,6,6,6,7,8,9,10 };
CMyArray<int> arr(b,16);
arr.show();
arr.deletesame();
arr.show();
system("pause");
}
看下 是这意思吗?
追问直接实现还有的功能就行,数组名不应该是地址吗
追答有什么需要修改的再找我
这个地址 就是地址 ,不是数组名。 。 。看个人理解吧 。 非要理解为数组名也行。
一般习惯把数组名 当作地址, 没有听说,把地址 当作数组名来理解的。。。