我试图通过在我的.h文件中定义向量来初始化/赋值给ublas向量:
someClass{
ublas::vector<double> *L;
} ;然后在我的.cpp文件中:
someClass::someClass()
{
L = new ublas::vector<double>[4];
L->data()[0] = 1;
}代码编译得很好,但是当我运行它时,.cpp文件中的最后一行给出了一个错误。我可能遗漏了一些非常简单的东西,但我不知道是什么……
非常感谢!:)
发布于 2012-05-11 04:38:48
您已经创建了一个包含四个ublas::vectors的数组,每个ublas::vectors的大小均为零。赋值给空向量的第一个元素会抛出异常。
你是不是想写
L = new ublas::vector<double>(4); 而不是?
更不用说new和指针的使用是有问题的,对于大多数用途来说,成员对象更合适:
class someClass {
ublas::vector<double> L;
public:
someClass() : L(4) {
L[0] = 1;
}
};https://stackoverflow.com/questions/10541366
复制相似问题