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`;