读书人

c++通用动态数组解决方法

发布时间: 2012-02-24 16:30:39 作者: rapoo

c++通用动态数组
想写一个c++的通用的动态数组,但指针掌握的很差,对我来说很有难度,求高人指点!!
请基于以下结构:

C/C++ code
enum Type{    SHORT,    INTEGER,    LONG,    FLOAT,    DOUBLE,    CHARACTER,};struct CommonType{    void* pVoid;    Type type;};struct CommonArray{    CommonType* pArray;    int size;    int pos;    int delta;};


实现以下方法:
//初始化
void initialArray(CommonArray& array, int size, int delta);
//删掉动态数组
void destroyArray(CommonArray& array);
//删除数组中指定位置的元素
bool removeElement(CommonArray& array, int index);
//向数组指定位置插入指定类型为CommonType的元素
bool insertElement(CommonArray& array, int index, CommonType value);
//得到数组中指定位置取得元素
bool getElement(CommonArray& array,int index, CommonType& value);

老师说就是实现不了代码,了解其思想也十分重要。欢迎大家踊跃讨论!共同进步!
我是csdn新手,分少,请见谅!
若大家对我所发帖的内容有什么不清楚的地方请提出来。
谢谢!!谢谢!!


[解决办法]
刚看primer,正好讲到数组这块,里面的意思,现在还在学数组和指针只是为了和以前兼容,现在可以用一些标准库来代替这些,例如vector,string,不用数组和指针也能写出功能一样的代码,并且安全简单(除了确实效率无法达到要求的时候)。楼下的对这句话有什么看法?
[解决办法]
嗯,可以学学vector的相思
[解决办法]
楼主,你的那些函数的参数具体意思要给出来,不然不知道怎么写。
[解决办法]
这是C代码么?
C++的话干嘛不用template
[解决办法]
楼主可以参考 STL Vector 的代码呀
动态数组其实就和 STL Vector 是一样的嘛
[解决办法]

STL Vector

设计的目标就是为了替换 array
[解决办法]
template应该也可以的啊。
其实你的CommonType里的type是用来指针转换的,在用的时候可以强制类型转换。CommonArray的soze成员可以记录分配长度大小。分配可以用malloc,因为你是void *的指针。
[解决办法]
听高人的吧,不太会
[解决办法]
开动态数组你要提供数组长度的差值。就是当你数组要溢出了,你要拷贝到新数组里,这2个数组长度差多少。还要记得删除前面的数组。
[解决办法]
你们老师是个好老师.
[解决办法]
good teacher!

读书人网 >C++

热点推荐