簡體   English   中英

調試斷言失敗,C ++向量下標超出范圍

[英]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, &dividends, &time_dividends);

據我所知,它來自第二個for語句,當我將其更改為i> = 1時可以使用。 我可以調用time_dividends [0]和股息[0],所以我不能說出為什么這不起作用。

&

i >= 0 & (*time_dividends)[i] > yte_forward

是一個“按位與” ,您可能想要“邏輯與” &&

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM