1

我试图通过在我的 .h 文件中定义向量来初始化/赋值给 ublas 向量:

someClass{
    ublas::vector<double> *L;
} ;

然后在我的 .cpp 文件中:

someClass::someClass()
{
    L = new ublas::vector<double>[4];
    L->data()[0] = 1;
}

代码编译得很好,但是当我运行它时,我的 .cpp 文件中的最后一行给出了错误。我可能缺少一些非常简单的东西,但我不知道是什么......

提前谢谢了!:)

4

1 回答 1

1

您已经创建了一个由四个 ublas::vectors 组成的数组,每个向量的大小为零。分配给空向量的第一个元素会引发异常。

你的意思是写

L = new ublas::vector<double>(4); 

反而?

且不说 new 和指针的使用是有问题的,对于大多数用途来说,成员对象更合适:

class someClass {
    ublas::vector<double> L;
 public:
     someClass() : L(4) {
          L[0] = 1;
     }
};
于 2012-05-10T20:38:47.887 回答