ublas矢量指针

时间:2012-05-10 20:08:39

标签: c++ pointers boost ublas

我正在尝试通过在.h文件中定义向量来初始化/为ublas向量赋值:

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

然后在我的.cpp文件中:

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

代码编译得很好,但是当我运行它时,我的.cpp文件中的最后一行会出错。可能有一些非常简单的我想念但我无法弄清楚是什么......

非常感谢提前! :)

1 个答案:

答案 0 :(得分:1)

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

你的意思是写

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

代替?

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

class someClass {
    ublas::vector<double> L;
 public:
     someClass() : L(4) {
          L[0] = 1;
     }
};