如何做出一个C++可变长数组,请各位帮忙
发布网友
发布时间:2022-05-22 03:26
我来回答
共4个回答
热心网友
时间:2024-03-06 03:58
查看vector源码,照抄并简化一下!抄一下MFC的CArray也不错!只要一个指针和一个指示大小的整型就可以了,其他都是锦上添花而已
C++怎么又变成C了。
这么好像很复杂,其实很简单的。
1)需要一个T类型的指针,动态分配内存,需要一个整数记录数组大小
2)一个缺省构造函数
vector();// 无成员,或者任意常量个成员
和一个单参构造函数
vector(int n); //n 个成员
3)添加成员,需要动态改变分配的内存大小。
改变成员数量的函数:
void resize( int n);
添加成员的函数:
void push_back(const T&t);
4)查找指定成员,逐一查找;const int find(const T& t);
查找固定位置的成员----实现 constr T& operator[](int n)const;
5)索引方式访问 实现
下标运算符[] 重载,即
constr T& operator[](int n)const;和
T& operator[](int n);
6)同类型对象赋值,实现
复制构造函数
vector(vector &v);
和 赋值运算符重载
vector operator=(const vector &v
);
7)获取数组当前长度
int size()const ;
不是很复杂呀!
热心网友
时间:2024-03-06 03:58
你的要求类似于c++的CArray类,我把这个类的微软代码给你贴出来,看对你有没有帮助
热心网友
时间:2024-03-06 03:59
如果你是要用这个功能的话,其实C语言和C++的类库里都有类似的,vector之类的。
如果你这个是练手的话,你可以先参照固定指针数组和链表的模式去操作,把两个融合在一起就是你要的东西,可以自己写,增加深度,我以前学习时候也写过这种。
如果你这个是作为必须完成的任务,那么就去网上搜索动态指针数组模板,这种例子很多。
热心网友
时间:2024-03-06 03:59
复旦的?董启文?追问so ,and then?
总而言之。。我只要神秘代码!