为了账号安全,请及时绑定邮箱和手机立即绑定

C+矩阵类

C+矩阵类

C++
阿晨1998 2019-07-05 15:50:01
在C中,如果我想创建一个矩阵结构,我将使用:struct matrix {   int col, row;   double data[1]; // I want the matrix entries stored                   // right after this struct}然后我就可以把它分配给matrix* allocate_matrix(int row, int col) {   matrix* m = malloc(sizeof(matrix) + sizeof(double) * (row * col - 1));   m->row = row; m->col = col;   return m;}现在我用C+做等价物了吗?编辑:我想知道在C+中实现矩阵类的规范方法。
查看完整描述

3 回答

?
红糖糍粑

TA贡献1815条经验 获得超6个赞

建立一个高效、高质量的矩阵类有很多的微妙之处。谢天谢地,有几个好的实现在四处浮动。

仔细考虑一下,您想要的是一个固定大小的矩阵类还是一个可变大小的类。也就是说,你能这样做吗?

// These tend to be fast and allocated on the stack.matrix<3,3> M;

还是你需要这样做

// These are slower but more flexible and partially allocated on the heap matrix M(3,3);

有好的库支持这两种风格,有些库支持这两种风格。它们有不同的分配模式和不同的性能。

如果您想自己编写代码,那么模板版本需要一些模板知识(Duh)。而动态的一个需要一些黑客来绕过很多小的分配,如果使用在紧环内。


查看完整回答
反对 回复 2019-07-05
  • 3 回答
  • 0 关注
  • 574 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信