C++ 声明一个Boost C++;矩阵导致分割错误
这一行:C++ 声明一个Boost C++;矩阵导致分割错误,c++,boost,matrix,segmentation-fault,numeric,C++,Boost,Matrix,Segmentation Fault,Numeric,这一行: boost::numeric::ublas::matrix<double> prices (vec.size() - 1, vec[0].size() - 1); boost::numeric::ublas::矩阵价格(vec.size()-1,vec[0].size()-1); 调试时不断导致分段错误。我不明白为什么,因为到目前为止,在代码中,它与另一个已经运行的程序是相同的。我还尝试通过以下方式(不同的运行)声明矩阵: boost::numeric::ublas::
boost::numeric::ublas::matrix<double> prices (vec.size() - 1, vec[0].size() - 1);
boost::numeric::ublas::矩阵价格(vec.size()-1,vec[0].size()-1);
调试时不断导致分段错误。我不明白为什么,因为到目前为止,在代码中,它与另一个已经运行的程序是相同的。我还尝试通过以下方式(不同的运行)声明矩阵:
boost::numeric::ublas::矩阵价格;
boost::numeric::ublas::矩阵价格(1,1);
但它仍然会发生!啊!!这在EclipseCDT和QtCreator中都会发生
编辑:vec是一个二维字符串向量:
vector< vector<string> > etf_prices`;
vectoretf_价格`;
请显示vec
的定义和初始化。另外,在第二个示例中,您声明了两个同名矩阵。不,我的意思是,我试图以三种不同的方式(在三次不同的运行中)声明矩阵,但无论是否使用vec,都会出现分段错误。这是一个很好的方法。我唯一的猜测是vec
没有包含任何内容。但是,您可能需要显示更多的代码。@gmanickg Segmentation fault on run,当调试该行触发的错误时。在崩溃的行之前,检查vec.size()-1
和vec[0]的值。size()-1
使用printf
或cout
。确保它们分别为>=0和小于prices.size1()
和prices.size2()
。
vector< vector<string> > etf_prices`;