C+矩阵类

在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+中实现矩阵类的规范方法。


阿晨1998
浏览 575回答 3
3回答

红糖糍粑

建立一个高效、高质量的矩阵类有很多的微妙之处。谢天谢地,有几个好的实现在四处浮动。仔细考虑一下,您想要的是一个固定大小的矩阵类还是一个可变大小的类。也就是说,你能这样做吗?//&nbsp;These&nbsp;tend&nbsp;to&nbsp;be&nbsp;fast&nbsp;and&nbsp;allocated&nbsp;on&nbsp;the&nbsp;stack.matrix<3,3>&nbsp;M;还是你需要这样做//&nbsp;These&nbsp;are&nbsp;slower&nbsp;but&nbsp;more&nbsp;flexible&nbsp;and&nbsp;partially&nbsp;allocated&nbsp;on&nbsp;the&nbsp;heap&nbsp;matrix&nbsp;M(3,3);有好的库支持这两种风格,有些库支持这两种风格。它们有不同的分配模式和不同的性能。如果您想自己编写代码,那么模板版本需要一些模板知识(Duh)。而动态的一个需要一些黑客来绕过很多小的分配,如果使用在紧环内。
打开App,查看更多内容
随时随地看视频慕课网APP