[英]Debug assertion failed, C++ vector subscript out of range
我知道之前曾有人問過這個問題,但是即使看了所有其他問題,我似乎也無法弄清楚。 我收到以下代碼的“向量下標超出范圍”:
double forward_price(int number_divs, std::vector<double> *dividends, std::vector<double> *time_dividends)
{
int i = number_divs - 1;
for (; i >= 0 & (*time_dividends)[i] > 0.0;)
i--;
for (; i >= 0 & (*time_dividends)[i] > 0.0; i--)
{
forward_px -= (*dividends)[i]
}
return forward_px;
}
int number_divs = 3;
std::vector<double> dividends = { .5, .6, .58 };
std::vector<double> time_dividends = { .04, .198, .6 };
double forward_div = forward_price(3, ÷nds, &time_dividends);
據我所知,它來自第二個for語句,當我將其更改為i> = 1時可以使用。 我可以調用time_dividends [0]和股息[0],所以我不能說出為什么這不起作用。
單&
在
i >= 0 & (*time_dividends)[i] > yte_forward
是一個“按位與” ,您可能想要“邏輯與” &&
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.