没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
C++ 手把手教你实现可变长的数组实现手把手教你实现可变长的数组实现
主要介绍了C++ 手把手教你实现可变长的数组实现,文中通过示例代码介绍的非常详细,对大家的学习或者工
作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
01 实现自定义的可变长数组类型实现自定义的可变长数组类型
假设我们要实现一个会自动扩展的数组,要实现什么函数呢?先从下面的main函数给出的实现,看看有什么函数是需要我们
实现的。
int main()
{
MyArray a; // 初始化的数组是空的
for(int i = 0; i < 5; ++i)
a.push_back(i); // push_back是成员函数
MyArray a2,a3;
a2 = a; // 重载赋值运算符函数
// 由于上一句a2 = a语句,所以a.length()实际上就是a2.length()
for(int i = 0; i < a.length(); ++i)
cout << a2[i] << " ";
a2 = a3; // a2是空的数组
for(int i = 0; i < a2.length(); ++i) // a2.length()返回0
cout << a2[i] << " ";
cout << endl;
a[3] = 100; // 重载[]运算符函数
MyArray a4(a); // 重载复制构造函数
for(int i = 0; i < a4.length(); ++i)
cout << a4[i] << " ";
return 0;
}
输出结果:
0 1 2 3 4
0 1 2 100 4
要实现的方式,要做哪些事情呢?我先列一下:
要用动态分配的内存来存放数组元素,需要一个指针成员变量
重载赋值=运算符
重载[]运算符
重载复制构造函数
实现push_back和length()函数
02 MyArray类的实现步骤类的实现步骤
要实现一个可变长数组类的,基本需要实现下面的7个函数:
class MyArray // 可变长数组类
{
public:
// 1. 构造函数,s代表数组元素的个数
MyArray(int s = 0);
// 2. 复制构造函数
MyArray(MyArray &a);
// 3. 析构函数
~MyArray();
// 4. 重载赋值=运算符函数,用于数组对象间的赋值
MyArray & operator=(const MyArray & a);
// 5. 重载[]运算符函数,用于获取数组下标对于的值
int & operator[](int i);
// 6. 加入一个元素到数组的末尾
void push_back(int v);
// 7. 获取数组的长度
资源评论
weixin_38728360
- 粉丝: 4
- 资源: 927
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功