矩阵运算-----模板

2019-04-14 17:43发布

本人第一次写博客,写的不好之处望多体谅。。。
由于博主在用c++写矩阵运算时,遇到了一系列问题,希望在这里做一个总结,也能帮到许多初学者。    在矩阵运算中,由于涉及二维数组(m行n列),若用函数直接定义数组,需要给定m、n值,这在实际应用中受到很大限制,我们在实际上中往往需要的是一个能计算任意大小的矩阵的方法(函数)。本人曾经试图将其定义为一维数组,通过定义一个a[m*n]矩阵,但是事与愿违,在实际的运算中又涉及许多算法知识,较为复杂。在这种情形下,模板(Template)成为了最好的选择。(1)模板之矩阵的转置templatevoid Transpose(T1*mat1, T2*mat2, int a, int b) {     int i, j;     for (i = 0; i(2)模板之矩阵相乘templatevoid Multi(T1*mat1, T2 * mat2, T2 * result, int a, int b, int c) { int i, j, k; for (i = 0; i(3)模板之矩阵相加//矩阵相加 templatevoid Add(T1*mat1, T2 * mat2, int a, int b) { for (int i = 0; i(4)模板之矩阵相减//矩阵相减 templatevoid Sub(T1 *mat1, T2 *mat2, T2 * result, int a, int b) {     for (int i = 0; i模板的使用,使矩阵运算能够满足double、int等数据类型,编译器均不会报错!!!