变长数组 adt 是这样设计的吗

tan625747 2010-03-25 10:37:48

#include <iostream>
#include "anArray.h"

anArray::anArray(void)
{
arraySize = 0;
Array = new int [arraySize];
}

anArray::~anArray(void)
{
}

void anArray::add(int addData)
{
arraySize ++;
Array[arraySize] = addData;
}

void anArray::showArray()
{
for (int i=0;i < arraySize;i++)
std::cout<< Array [ arraySize] << std::endl;
}

int main ()
{
anArray aArr;
aArr.add (3);
aArr.showArray ();

}




不知道是不是这样设计的,只对变长数组加,和取长操作,不知道还有些什么操作,请有设计adt 经验人士指点。
谢谢
...全文
76 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
cattycat 2010-03-26
  • 打赏
  • 举报
回复
arraySize = 0;
Array = new int [arraySize];
你这样其实都没分配出来空间,应该用curSize保存当前大小,传一个分配空间大小的参数
anArray::anArray(int arraySize)
{
curSize=0;
Array = new int [arraySize];
}

然后在析构函数中delete[]Array。
tan625747 2010-03-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 yuzl32 的回复:]

arraySize = 0;
Array = new int [arraySize];

arraySize=0,其他对Array的操作没办法进行.即便不是0,你这个arraySize也是固定的,换句话说,Array还是固定长度的数据。
[/Quote]
书上说
int *Array;
int arraySize = 0;
Array = new int [arraySize];

这是建一个变长数组的方法
tan625747 2010-03-26
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zhoutanliang 的回复:]

准确的说用容器多好

STL都给你实现了有现成的干嘛还自己实现呢

难道你还信不过标准库!

LZ…………仅仅是建议哈
[/Quote]


这个是别人交给我任务
yuzl32 2010-03-25
  • 打赏
  • 举报
回复
arraySize = 0;
Array = new int [arraySize];

arraySize=0,其他对Array的操作没办法进行.即便不是0,你这个arraySize也是固定的,换句话说,Array还是固定长度的数据。
AlanBruce 2010-03-25
  • 打赏
  • 举报
回复
准确的说用容器多好

STL都给你实现了有现成的干嘛还自己实现呢

难道你还信不过标准库!

LZ…………仅仅是建议哈
tan625747 2010-03-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sduxiaoxiang 的回复:]

C/C++ code

anArray::anArray(int arraySize)
{
curSize=0;
Array = new int [arraySize];
}

anArray::~anArray(void)
{
delete []Array;
}

void anArray::add(int addData)
{
if(curSize<arraySi……
[/Quote]


主要是指设计方法,不知道有没有不对的地方,或者操作。
sduxiaoxiang 2010-03-25
  • 打赏
  • 举报
回复

anArray::anArray(int arraySize)
{
curSize=0;
Array = new int [arraySize];
}

anArray::~anArray(void)
{
delete []Array;
}

void anArray::add(int addData)
{
if(curSize<arraySize)
{
curSize++;
Array[curSize] = addData;
}
else//申请空间 拷贝释放原始空间
{
}
}

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧