我正在尝试通过在.h文件中定义向量来初始化/为ublas向量赋值:
someClass{
ublas::vector<double> *L;
} ;
然后在我的.cpp文件中:
someClass::someClass()
{
L = new ublas::vector<double>[4];
L->data()[0] = 1;
}
代码编译得很好,但是当我运行它时,我的.cpp文件中的最后一行会出错。可能有一些非常简单的我想念但我无法弄清楚是什么......
非常感谢提前! :)
答案 0 :(得分:1)
你已经创建了一个由四个ublas ::向量组成的数组,每个向量大小为零。分配给空向量的第一个元素会引发异常。
你的意思是写
L = new ublas::vector<double>(4);
代替?
更不用说使用new和指针是有问题的,对于大多数用途,成员对象更合适:
class someClass {
ublas::vector<double> L;
public:
someClass() : L(4) {
L[0] = 1;
}
};