c++ 二维矩阵 转vector_用类重载实现矩阵乘(用new创建二维数组及其传递)

第一次写文章,感觉好奇怪。

初学C++,用刚学的类写个小程序

主要问题:

1.需要根据输入确定矩阵大小,所以需要用new给类的私有成员申请空间。同时如何创建二维数组,且如何传递,主要是二维数组的类型。

2.初始化构造函数、赋值构造函数和重载=之间的联系。

3.VScode怎么同时编译多个文件。

一、new与二维数组

1.数据类型:首先看一维数组,想传地址直接取数组名就好,比如:

int sz[100];
int *p=sz;//之后p就能当数组用了

那么照这么搞,二维数组的地址是不是可以表示成 int **p? 很遗憾不能。和C一样,C++按行分配内存块,所以编译器可以不知道你要多少行,但是必须要知道你每行的长度是多少,不然没法分配内存。一个3X2数组的地址:

ed5796c08bce86cc761f4d738c29fd2f.png
显然这样能保证行与行之间是连续的

所以对于一个二维数组,它的数组名(地址)的数据类型实际上是 (int (*)[n]),其中n是列数,也就是说,不同列数的数组他们的数组地址不是同一种类型的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值