我的功能是从双精度矢量(代表多项式)生成多项式矢量(双精度矢量矢量)。然后,我在其他函数中使用此函数,它看起来像这样:
vector < vector <double> > lancuch_sturma ( vector <double> wielomian )
{
/* some code here */
}
接下来我有使用lancuch_sturma
的功能:
unsigned int ilosc_zmian_znaku (double x, vector < vector <double> > lancuch_sturma)
{
if (lancuch_sturma.size() == 0)
return 0;
else
{
/* some code here */
}
}
之后我在main()
vector <double> wielomian
填充了双打。当我尝试使用它时:
unsigned int test = ilosc_zmian_znaku (-2, lancuch_sturma(wielomian));
我熟悉错误:
Microsoft Visual C ++运行时库
Debug Assertion失败!
程序:C:\ Windows \ system32 \ MSVCP110D.dll文件:c:\ program files (x86)\ microsoft visual studio 11.0 \ vc \ include \ vector Line:1140
表达式:向量下标超出范围
有关程序如何导致断言失败的信息, 请参阅关于断言的Visual C ++文档。
(按“重试”调试应用程序)
我在ilosc_zmian_znaku
中遇到此错误,位于if (lancuch_sturma.size() == 0)
所在的行,但我不知道可能会出现什么错误。我在那里放了断点,我的lancuch_sturma
和size=7
。确切地说:
- lancuch_sturma { size=7 } std::vector<std::vector<double,std::allocator<double> >,std::allocator<std::vector<double,std::allocator<double> > > >
如果lancuch_sturma
有size=7
,那么为什么我在检查此尺寸是==0
时会出错?